ConvertText.app LogoConvertText.app

Bộ mã hóa / Giải mã URL

Mã hóa URL, query string và ký tự đặc biệt sang dạng percent encoding, hoặc giải mã văn bản đã mã hóa trở lại thành URL dễ đọc — ngay lập tức, trực tiếp trên trình duyệt. Công cụ này hoạt động như bộ mã hóa phần trăm, bộ giải mã phần trăm, bộ mã hóa query string, bộ giải mã query string và trình chuyển đổi mã hóa URL tương thích UTF-8, tất cả trong một trang.

Dán URL hoặc bất kỳ văn bản nào vào ô nhập liệu, chọn mã hóa hay giải mã, đồng thời cho biết bạn đang làm việc với một thành phần URL hay URL đầy đủ, rồi sao chép kết quả. Mọi thứ chạy cục bộ trên trình duyệt bằng các hàm URL gốc của JavaScript, nên dữ liệu nhập của bạn không bao giờ rời khỏi thiết bị.

Tùy chọn chuyển đổi
Chọn xem bạn muốn mã hóa hay giải mã, và bạn đang làm việc với một thành phần URL đơn lẻ (ví dụ: giá trị truy vấn) hay một URL đầy đủ.

Chế độ Thành phần mã hóa phần trăm các ký tự dành riêng như / ? # & = để một giá trị an toàn trong chuỗi truy vấn hoặc phân đoạn đường dẫn.

Văn bản cần mã hóa
Nhập văn bản hoặc URL bạn muốn mã hóa. Khoảng trắng trở thành %20, ký tự đặc biệt được mã hóa phần trăm.
0 ký tự
Kết quả mã hóa
Kết quả mã hóa phần trăm, an toàn để sử dụng trong URL.
0 ký tự

Đây là bộ mã hóa và giải mã URL riêng tư, chạy trên trình duyệt. Công cụ sử dụng các hàm gốc encodeURIComponent, encodeURI, decodeURIComponent và decodeURI để xử lý văn bản UTF-8 an toàn mà không truyền dữ liệu lên máy chủ.

Bộ mã hóa và giải mã URL này làm gì?

Bộ mã hóa URL chuyển đổi các ký tự không thể dùng trực tiếp trong URL thành các chuỗi percent-encoded. Bộ giải mã URL đảo ngược quá trình đó, chuyển đổi văn bản đã mã hóa trở lại thành các ký tự gốc. Trang này thực hiện cả hai chiều, cho cả một thành phần URL lẫn URL đầy đủ.

Công cụ sử dụng bốn hàm JavaScript tiêu chuẩn:

  • encodeURIComponent — để mã hóa một thành phần URL duy nhất, chẳng hạn giá trị của tham số query.
  • encodeURI — để mã hóa URL đầy đủ trong khi giữ nguyên các ký tự đặc biệt như : / ? # & = có ý nghĩa cấu trúc.
  • decodeURIComponent — để giải mã một thành phần URL duy nhất trở lại các ký tự gốc.
  • decodeURI — để giải mã URL đầy đủ mà không chạm vào các ký tự đặc biệt.

Tất cả chuyển đổi đều tương thích UTF-8, do đó các chữ cái có dấu, emoji và ký tự từ các hệ thống chữ viết không phải Latin đều được xử lý chính xác. Không có gì được tải lên, không có gì được lưu trữ và không có lệnh gọi API nào được thực hiện.

Ví dụ về mã hóa URL

Một số ví dụ thực tế về cách mã hóa URL hoạt động:

  • Dấu cách trở thành %20, vì vậy xin chào thế giới được mã hóa thành xin%20ch%C3%A0o%20th%E1%BA%BF%20gi%E1%BB%9Bi.
  • Dấu gạch chéo trong giá trị query trở thành %2F, vì vậy a/b trở thành a%2Fb dưới dạng tham số.
  • Dấu hỏi trong giá trị trở thành %3F, vì vậy sao? trở thành sao%3F.
  • Ký tự & trong giá trị trở thành %26, ngăn không làm hỏng query string xung quanh.
  • Ký tự # trong giá trị trở thành %23, vì vậy c# trở thành c%23.
  • Ký tự ngoài ASCII sử dụng các chuỗi UTF-8 nhiều byte. Ví dụ café trở thành caf%C3%A9 (é là hai byte UTF-8).
  • Emoji cũng sử dụng UTF-8 nhiều byte: 😀 trở thành %F0%9F%98%80.

Chuyển công cụ sang chế độ Giải mã và dán bất kỳ chuỗi đã mã hóa nào ở trên để xem văn bản gốc được khôi phục chính xác.

Thành phần URL và URL đầy đủ

Chọn đúng chế độ là điều quan trọng vì hai bộ mã hóa xử lý các ký tự đặc biệt khác nhau.

Sử dụng chế độ Thành phần (encodeURIComponent / decodeURIComponent) khi mã hóa một giá trị duy nhất sẽ được chèn vào URL — ví dụ giá trị tham số query, phân đoạn đường dẫn hoặc giá trị fragment. Chế độ Thành phần mã hóa phần trăm các ký tự đặc biệt (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) để chúng không vô tình thay đổi cấu trúc URL xung quanh.

Sử dụng chế độ URL Đầy đủ (encodeURI / decodeURI) khi bạn đã có URL đầy đủ như https://example.com/path?query=value#fragment và chỉ muốn escape các ký tự không an toàn (chẳng hạn dấu cách hoặc ký tự ngoài ASCII), mà không chạm vào các ký tự cấu trúc đặc biệt.

Lỗi phổ biến là dùng encodeURI cho giá trị được thiết kế làm tham số query. Các ký tự đặc biệt vẫn còn nguyên, có thể làm hỏng URL xung quanh. Khi nghi ngờ, hãy mã hóa từng giá trị query bằng encodeURIComponent rồi ghép URL lại.

Percent encoding là gì?

Percent encoding (còn gọi là mã hóa URL) là cách biểu diễn trong URL các ký tự đặc biệt (có ý nghĩa cấu trúc) hoặc các ký tự không được phép. Mỗi byte không an toàn được viết dưới dạng dấu phần trăm theo sau là hai chữ số thập lục phân — ví dụ %20 cho dấu cách, %2F cho dấu gạch chéo hoặc %3F cho dấu hỏi.

Mã hóa hoạt động trên các byte, không phải trực tiếp trên ký tự. URL hiện đại sử dụng UTF-8 để chuyển đổi ký tự thành byte trước, đó là lý do tại sao một chữ cái có dấu có thể tạo ra hai byte được mã hóa phần trăm và một emoji có thể tạo ra bốn byte. Công cụ này luôn sử dụng UTF-8 để các chuỗi đã mã hóa có thể tương tác với phần còn lại của web.

Percent encoding được định nghĩa bởi RFC 3986. Các hàm JavaScript gốc được sử dụng ở đây triển khai đặc tả đó, vì vậy giá trị được mã hóa bằng encodeURIComponent trong bất kỳ trình duyệt hiện đại nào đều được giải mã chính xác bằng decodeURIComponent ở bất kỳ đâu.

Khi nào nên sử dụng công cụ này

Bộ mã hóa giải mã URL này hữu ích mỗi khi bạn cần chuyển văn bản vào hoặc ra khỏi URL một cách an toàn. Các tình huống phổ biến:

  • Mã hóa văn bản cho query string trước khi dán vào request API, dòng log hoặc thanh địa chỉ trình duyệt.
  • Giải mã tham số URL từ log request hoặc bản xuất analytics để đọc các giá trị gốc.
  • Kiểm tra URL dài đã mã hóa bằng cách giải mã để xem thực sự đang truyền gì.
  • Escape ký tự đặc biệt trong URL trước khi chia sẻ trên chat, tài liệu hoặc JSON payload.
  • Học cách percent encoding và các chuỗi byte UTF-8 ánh xạ tới các ký tự.

Vì công cụ chạy hoàn toàn trên trình duyệt, nó cũng phù hợp cho các URL nhạy cảm (liên kết nội bộ, token, URL đã ký) mà bạn không muốn dán vào dịch vụ từ xa.

Mã hóa URL và làm sạch URL

Mã hóa URL và làm sạch URL là hai thao tác khác nhau thường bị nhầm lẫn.

Mã hóa URL (công cụ này) chuyển đổi ký tự sang dạng mã hóa phần trăm an toàn cho URL và đảo ngược lại. Cấu trúc URL được bảo toàn; không có gì được thêm vào hay xóa đi.

Làm sạch URL (một loại công cụ khác) xóa các tham số theo dõi như utm_source, utm_medium, fbclid, gclid và các khóa query tương tự khỏi URL, để liên kết kết quả không còn chứa metadata theo dõi. Làm sạch URL thay đổi các tham số trong URL — mã hóa thì không.

Nếu muốn xóa các tham số theo dõi, bạn cần một công cụ làm sạch URL chuyên dụng. Nếu muốn mã hóa hoặc giải mã văn bản sang/từ dạng mã hóa phần trăm, đây là công cụ phù hợp.

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

Bộ mã hóa và giải mã URL là gì?

Bộ mã hóa URL chuyển đổi các ký tự đặc biệt hoặc không an toàn trong URL thành chuỗi percent-encoded (ví dụ dấu cách trở thành %20). Bộ giải mã URL đảo ngược quá trình đó và khôi phục các ký tự gốc. Trang này hỗ trợ cả hai chiều và hoạt động cho cả thành phần URL lẫn URL đầy đủ, tất cả trên trình duyệt.

Mã hóa URL là gì?

Mã hóa URL là quá trình thay thế các ký tự có ý nghĩa đặc biệt trong URL, hoặc không được phép trong URL, bằng các chuỗi percent-encoded. Mỗi byte không an toàn được viết dưới dạng dấu phần trăm theo sau là hai chữ số thập lục phân. Mã hóa URL còn được gọi là percent encoding và được định nghĩa bởi RFC 3986.

Percent encoding là gì?

Percent encoding là lược đồ mã hóa mà URL sử dụng để biểu diễn các ký tự không an toàn hoặc đặc biệt. Ký tự được chuyển đổi thành một hoặc nhiều byte (UTF-8 cho URL hiện đại), và mỗi byte được viết dưới dạng dấu phần trăm theo sau là giá trị thập lục phân hai chữ số. Ví dụ, dấu cách là byte 0x20 và được viết là %20.

Khi nào nên dùng encodeURIComponent thay vì encodeURI?

Sử dụng encodeURIComponent khi mã hóa một giá trị duy nhất sẽ được chèn vào URL — thường là giá trị tham số query, phân đoạn đường dẫn hoặc giá trị fragment. Hàm này mã hóa phần trăm các ký tự đặc biệt như /, ?, #, & và = để chúng không vô tình thay đổi cấu trúc URL xung quanh. Sử dụng encodeURI khi đã có URL đầy đủ và chỉ muốn escape các ký tự không an toàn (như dấu cách hoặc ký tự ngoài ASCII), mà không chạm vào các ký tự cấu trúc đặc biệt.

Sự khác biệt giữa %20 và + là gì?

Cả hai đều có thể biểu diễn dấu cách, nhưng trong các ngữ cảnh khác nhau. %20 là mã hóa phần trăm tiêu chuẩn của dấu cách và hợp lệ ở bất kỳ đâu trong URL. Ký tự + chỉ được hiểu là dấu cách trong dữ liệu application/x-www-form-urlencoded — thường là phần thân của biểu mẫu HTML hoặc query string do một số hệ thống cũ tạo ra. Các hàm gốc decodeURIComponent và decodeURI KHÔNG chuyển đổi + thành dấu cách, và công cụ này tuân theo cùng hành vi nghiêm ngặt đó: + được giữ nguyên chính xác như bạn gõ. Nếu đang giải mã dữ liệu biểu mẫu và cần + có nghĩa là dấu cách, hãy thay + bằng dấu cách theo cách thủ công trước khi giải mã.

Công cụ này có thể giải mã query string không?

Có. Dán query string đã mã hóa (hoặc một giá trị đã mã hóa duy nhất) vào ô nhập liệu và chuyển hướng sang Giải mã. Sử dụng chế độ Thành phần cho một giá trị tham số duy nhất và chế độ URL Đầy đủ nếu giải mã toàn bộ URL. Lưu ý rằng công cụ không tách query string thành các cặp khóa/giá trị — nó giải mã các ký tự percent-encoded trong văn bản bạn dán vào.

Bộ giải mã URL này có hỗ trợ ký tự UTF-8 không?

Có. Các hàm JavaScript gốc xử lý các chuỗi percent-encoded như các byte UTF-8, vì vậy các chữ cái có dấu, emoji và ký tự từ các hệ thống chữ viết không phải Latin được giải mã chính xác về dạng gốc. Ví dụ caf%C3%A9 được giải mã thành café và %F0%9F%98%80 được giải mã thành 😀. Nếu một chuỗi không phải UTF-8 hợp lệ, bộ giải mã báo lỗi đầu vào không hợp lệ thay vì tạo ra các ký tự thay thế một cách im lặng.

Văn bản của tôi có được tải lên máy chủ không?

Không. Bộ mã hóa và giải mã chạy hoàn toàn trên trình duyệt của bạn bằng các hàm URL gốc của JavaScript. Đầu vào của bạn không bao giờ được gửi đến máy chủ, không bao giờ được lưu trữ và không bao giờ được ghi lại. Đóng tab sẽ xóa mọi thứ. Điều này làm cho công cụ phù hợp cho các URL nhạy cảm (liên kết nội bộ, token, URL đã ký) mà bạn không muốn dán vào dịch vụ từ xa.

Mã hóa URL có giống với làm sạch URL không?

Không. Mã hóa URL chuyển đổi ký tự sang/từ dạng mã hóa phần trăm mà không thay đổi tham số nào có mặt. Làm sạch URL là thao tác riêng biệt xóa các tham số theo dõi như utm_source, utm_medium, fbclid hoặc gclid khỏi URL. Nếu muốn xóa tracker khỏi liên kết, bạn cần công cụ làm sạch URL chuyên dụng; trang này chỉ mã hóa và giải mã.

Tại sao một số URL đã giải mã vẫn chứa dấu phần trăm?

Nếu URL gốc được mã hóa hai lần (mã hóa kép), một lần giải mã chỉ hoàn tác một lớp. Ví dụ, %2520 được giải mã thành %20, sau đó được giải mã thành dấu cách ở lần thứ hai. Chạy kết quả qua bộ giải mã một lần nữa nếu vẫn trông như đã mã hóa. Dấu phần trăm theo nghĩa đen không phải là một phần của chuỗi escape hợp lệ (ví dụ abc%) là mã hóa phần trăm không hợp lệ và bộ giải mã sẽ báo lỗi đầu vào không hợp lệ thay vì đoán.

Khám phá thêm công cụ văn bản

Công cụ trực tuyến miễn phí để chuyển đổi, mã hóa và biến đổi văn bản

Chuyển đổi chữ

Chuyển đổi kiểu chữ — chữ hoa, chữ thường, title case và nhiều hơn nữa

Morse Code Translator

Chuyển đổi văn bản thành mã Morse và ngược lại

Bộ giải mã âm thanh Morse

Giải mã mã Morse từ tệp âm thanh hoặc micrô

Binary Translator

Chuyển đổi văn bản thành mã nhị phân và ngược lại

Base64 Encoder/Decoder

Mã hóa và giải mã Base64

Hex Converter

Chuyển đổi văn bản thành hệ thập lục phân và ngược lại

ROT13 Encoder/Decoder

Mã hóa và giải mã văn bản bằng mật mã ROT13

Tạo chữ trên

Chuyển đổi văn bản thành chữ trên Unicode được hỗ trợ

Công cụ tạo chữ dưới

Chuyển đổi văn bản thành chữ dưới Unicode được hỗ trợ

Trình tạo văn bản gạch ngang

Tạo ngay văn bản Unicode gạch ngang để sao chép và dán

Công cụ chuyển đổi hình ảnh sang Base64

Chuyển đổi hình ảnh sang Base64 / Data URI