Tan Phat Media

URL Encoder - Mã Hóa URL Online

Encode và decode URL online

Input
Output
Kết quả sẽ hiển thị ở đây...
💡 Sự khác biệt

encodeURIComponent - Encode tất cả ký tự đặc biệt (dùng cho query params)

encodeURI - Giữ nguyên :, /, ?, & (dùng cho full URL)

URL Encoder/Decoder Online - Mã Hóa URL Miễn Phí

Công cụ URL Encoder/Decoder online miễn phí của Tấn Phát Digital giúp bạn mã hóa (encode) và giải mã (decode) URL một cách chính xác và an toàn. Hỗ trợ hai phương thức chuẩn JavaScript: encodeURIComponent cho query parameters và encodeURI cho full URL. Xử lý hoàn hảo tiếng Việt có dấu, ký tự đặc biệt (&, =, ?, #, %, +, dấu cách), và Unicode. Hiển thị rõ sự khác biệt giữa hai phương thức encode. Copy kết quả với một click. Xử lý hoàn toàn offline trên trình duyệt, đảm bảo bảo mật dữ liệu.

Tính năng nổi bật

Encode URL với encodeURIComponent - mã hóa tất cả ký tự đặc biệt, dùng cho query params
Encode URL với encodeURI - giữ nguyên cấu trúc URL (:, /, ?, &), dùng cho full URL
Decode URL về dạng gốc readable, hỗ trợ cả single và double encoding
Xử lý hoàn hảo tiếng Việt có dấu và các ngôn ngữ Unicode khác
Xử lý tất cả ký tự đặc biệt: &, =, ?, #, %, +, dấu cách, quotes
Hiển thị rõ sự khác biệt giữa encodeURI và encodeURIComponent
Copy kết quả với một click, có feedback visual
Xử lý hoàn toàn offline trên trình duyệt, bảo mật dữ liệu

Tại sao cần Encode/Decode URL?

URL (Uniform Resource Locator) theo chuẩn RFC 3986 chỉ cho phép một số ký tự ASCII nhất định: chữ cái (a-z, A-Z), số (0-9), và một số ký tự đặc biệt (-, _, ., ~). Tất cả ký tự khác như dấu cách, tiếng Việt, ký tự đặc biệt (&, =, ?, #) phải được mã hóa thành dạng percent-encoding (%XX) để truyền qua URL an toàn. Nếu không encode, URL có thể bị hiểu sai hoặc gây lỗi. Ví dụ: 'name=Tấn Phát' nếu không encode sẽ bị lỗi vì dấu cách và tiếng Việt. Sau khi encode: 'name=T%E1%BA%A5n%20Ph%C3%A1t'. Decode cần thiết khi bạn nhận URL đã encode và muốn đọc nội dung gốc.

Lợi ích khi sử dụng

  • Xây dựng query string an toàn cho API calls và form submissions
  • Chia sẻ link có chứa tiếng Việt hoặc ký tự đặc biệt không bị lỗi
  • Debug URL issues - decode để đọc, encode để fix
  • Tạo URLs cho email, SMS, social media với special characters
  • Xử lý redirect URLs có chứa URL khác bên trong
  • Encode data trước khi lưu vào database qua URL
  • Decode URLs từ logs, analytics để đọc được nội dung
  • Học và hiểu cách URL encoding hoạt động

Hướng dẫn sử dụng URL Encoder/Decoder chi tiết

  1. 1Nhập URL hoặc text cần encode/decode vào ô Input
  2. 2Để ENCODE cho query parameter values: Nhấn 'Encode Component' - mã hóa TẤT CẢ ký tự đặc biệt
  3. 3Để ENCODE cho full URL: Nhấn 'Encode URI' - giữ nguyên :, /, ?, &, = (cấu trúc URL)
  4. 4Để DECODE: Nhấn 'Decode' - giải mã percent-encoding về dạng gốc readable
  5. 5Xem kết quả ở ô Output bên dưới
  6. 6Click icon Copy để sao chép kết quả vào clipboard
  7. 7Đọc phần 'Sự khác biệt' để hiểu khi nào dùng method nào

Sự khác biệt giữa encodeURI và encodeURIComponent

encodeURI dùng để encode TOÀN BỘ URL. Nó giữ nguyên các ký tự cấu trúc URL: : (protocol), / (path separator), ? (query start), & (param separator), = (key-value separator), # (hash). Ví dụ: encodeURI('https://example.com/path?name=Tấn Phát') → 'https://example.com/path?name=T%E1%BA%A5n%20Ph%C3%A1t'. encodeURIComponent dùng để encode GIÁ TRỊ trong query string. Nó mã hóa TẤT CẢ ký tự đặc biệt bao gồm cả :, /, ?, &, =. Ví dụ: encodeURIComponent('https://example.com') → 'https%3A%2F%2Fexample.com'. Dùng encodeURIComponent khi giá trị có thể chứa các ký tự cấu trúc URL.

Percent-Encoding là gì?

Percent-encoding (còn gọi URL encoding) là cách biểu diễn ký tự không an toàn trong URL bằng dấu % theo sau là 2 hex digits. Ví dụ: Space → %20, & → %26, = → %3D, ? → %3F, # → %23, % → %25. Tiếng Việt và Unicode được encode theo UTF-8: mỗi byte của UTF-8 representation được encode riêng. Ví dụ: 'ệ' trong UTF-8 là 3 bytes (E1 BB 87), encode thành %E1%BB%87. Đây là lý do tiếng Việt encode ra chuỗi dài.

Các ký tự an toàn trong URL (không cần encode)

Theo RFC 3986, các ký tự sau KHÔNG cần encode: Unreserved characters: A-Z, a-z, 0-9, - (hyphen), _ (underscore), . (period), ~ (tilde). Reserved characters (có ý nghĩa đặc biệt): : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Reserved characters chỉ cần encode khi dùng với nghĩa khác (ví dụ: & trong giá trị query param). Tất cả ký tự khác (space, tiếng Việt, <, >, {, }, |, \, ^, `) PHẢI được encode.

Double Encoding và cách tránh

Double encoding xảy ra khi encode một string đã được encode. Ví dụ: 'hello world' → encode → 'hello%20world' → encode lại → 'hello%2520world'. %20 bị encode thành %2520 (% → %25). Điều này gây lỗi khi decode vì server chỉ decode 1 lần. Cách tránh: Luôn decode trước khi encode nếu không chắc chắn string đã encode chưa. Hoặc check xem string có chứa %XX patterns không. Một số servers tự động handle double encoding, nhưng không nên rely vào điều này.

URL Encoding trong các ngôn ngữ lập trình

JavaScript: encodeURIComponent(), encodeURI(), decodeURIComponent(), decodeURI(). Python: urllib.parse.quote(), urllib.parse.unquote(), urllib.parse.urlencode(). PHP: urlencode(), rawurlencode(), urldecode(). Java: URLEncoder.encode(), URLDecoder.decode(). C#: HttpUtility.UrlEncode(), Uri.EscapeDataString(). Lưu ý: Mỗi ngôn ngữ có thể có slight differences trong cách handle certain characters (đặc biệt là space: + vs %20).

Common Use Cases cho URL Encoding

1. API Calls: Encode query parameters trước khi gửi request. 2. Form Submissions: Browser tự động encode form data, nhưng cần encode khi build URL manually. 3. Redirect URLs: Khi URL chứa URL khác (return_url=https://...), URL bên trong phải được encode. 4. Deep Links: Mobile deep links thường chứa parameters cần encode. 5. Email/SMS Links: Ký tự đặc biệt trong link có thể bị email clients xử lý sai. 6. Analytics Tracking: UTM parameters với special characters. 7. Search Queries: User input trong search box cần encode trước khi đưa vào URL.

Câu hỏi thường gặp (FAQ)

encodeURI và encodeURIComponent khác nhau thế nào?

encodeURI giữ nguyên các ký tự cấu trúc URL (:, /, ?, &, =, #), dùng cho full URL. encodeURIComponent mã hóa TẤT CẢ ký tự đặc biệt, dùng cho giá trị trong query string. Ví dụ: nếu value là 'a&b=c', dùng encodeURIComponent để & và = không bị hiểu là separators.

Dấu cách được encode thành %20 hay +?

Cả hai đều valid nhưng trong contexts khác nhau. %20 là chuẩn RFC 3986 cho URLs. + là chuẩn application/x-www-form-urlencoded (HTML forms). encodeURIComponent dùng %20. Khi decode, cả %20 và + đều thành space. Best practice: dùng %20 cho URLs, + cho form data.

Tại sao URL tiếng Việt encode ra chuỗi rất dài?

Tiếng Việt (và Unicode nói chung) được encode theo UTF-8. Mỗi ký tự tiếng Việt có dấu chiếm 2-3 bytes trong UTF-8, mỗi byte encode thành 3 ký tự (%XX). Ví dụ: 'ệ' = 3 bytes UTF-8 = %E1%BB%87 (9 ký tự). Đây là lý do URLs tiếng Việt rất dài sau khi encode.

Double encoding là gì và làm sao tránh?

Double encoding xảy ra khi encode string đã encode: %20 → %2520. Gây lỗi vì server chỉ decode 1 lần, kết quả là %20 thay vì space. Cách tránh: decode trước khi encode nếu không chắc, hoặc check string có %XX patterns không. Công cụ này có thể decode trước rồi encode lại để tránh double encoding.

Có cần encode toàn bộ URL không?

KHÔNG nên encode toàn bộ URL bằng encodeURIComponent vì sẽ encode cả :// và /. Dùng encodeURI cho full URL (giữ cấu trúc). Dùng encodeURIComponent CHỈ cho values trong query string. Ví dụ: 'https://example.com?name=' + encodeURIComponent('Tấn Phát').

URL encoding có giống Base64 encoding không?

KHÔNG. URL encoding (percent-encoding) encode từng ký tự không an toàn thành %XX. Base64 encode binary data thành ASCII string dùng A-Z, a-z, 0-9, +, /. Mục đích khác nhau: URL encoding cho URLs, Base64 cho binary data. Base64 output vẫn có thể cần URL encode nếu đưa vào URL (vì có + và /).

Từ khóa liên quan

url encoderurl decoderencode url onlinedecode url onlinepercent encodingmã hóa urlgiải mã urlencodeURIComponentencodeURIurl escapeurl unescapequery string encoderutf-8 url encodingurl encoding tiếng việtonline url encoder decoder

Hợp tác ngay với Tấn Phát Digital

Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.

Công cụ Developer Tools liên quan

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook