Chuyển đến nội dung
ToolMug

Mã hóa & giải mã URL

Mã hóa văn bản để dùng trong URL, giải mã chuỗi %-escaped về lại văn bản dễ đọc, và xem bất kỳ URL nào được tách thành các phần và tham số truy vấn. Chọn giữa mã hóa một tham số, cả URL, hoặc dữ liệu form HTML.

Chạy trong trình duyệt — không có dữ liệu nào bạn nhập bị tải lên

Cách sử dụng

  1. Chọn Mã hóa hoặc Giải mã.
  2. Chọn chế độ — Thành phần cho một giá trị tham số, URL đầy đủ để giữ cấu trúc URL, hoặc Biểu mẫu cho dữ liệu form HTML nơi dấu cách thành +.
  3. Dán văn bản của bạn. Kết quả cập nhật khi bạn gõ.
  4. Nếu đầu vào là một URL, giao thức, host, path và tham số truy vấn của nó được liệt kê bên dưới.

Giải thích tùy chọn

Thành phần
Mã hóa mọi ký tự trừ chữ, số và - _ . ~ — dùng cho giá trị tham số truy vấn hoặc một đoạn path. Khớp với encodeURIComponent, cùng ! ' ( ) * mà RFC 3986 giữ riêng.
URL đầy đủ
Giữ nguyên các ký tự tạo nên cấu trúc URL (: / ? # & =) và mã hóa dấu cách cùng ký tự ngoài ASCII. Khớp với encodeURI của JavaScript.
Biểu mẫu
application/x-www-form-urlencoded, dùng bởi form HTML. Dấu cách thành + thay vì %20; khi giải mã, + được chuyển lại thành dấu cách.

Ví dụ

Đầu vào Thành phần URL đầy đủ Biểu mẫu
a b&c a%20b%26c a%20b&c a+b%26c
café caf%C3%A9 caf%C3%A9 caf%C3%A9
https://x.com/?q=1 2 https%3A%2F%2Fx.com%2F%3Fq%3D1%202 https://x.com/?q=1%202 https%3A%2F%2Fx.com%2F%3Fq%3D1+2

Xây dựng URL kèm tham số

Khi bạn đưa dữ liệu người dùng vào một chuỗi truy vấn, hãy mã hóa từng giá trị riêng:

const url = `https://example.com/search?q=${encodeURIComponent(query)}&page=2`;

Mã hóa toàn bộ URL ở bước cuối sẽ để lại & và = chưa mã hóa trong giá trị và làm hỏng các tham số.

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

%20 và + khác nhau ở điểm nào?

Cả hai có thể biểu diễn dấu cách, nhưng ở những vị trí khác nhau. %20 hoạt động ở mọi nơi trong URL; + chỉ có nghĩa là dấu cách trong chuỗi truy vấn khi gửi form. Trong path, + là dấu cộng theo nghĩa đen.

Vì sao văn bản của tôi bị mã hóa hai lần (%2520)?

Nó đã bị mã hóa hai lần — dấu % của %20 lại bị mã hóa thành %25. Hãy giải mã hai lần, và trong code của bạn hãy đảm bảo chỉ một lớp mã hóa giá trị.

Khi nào nên dùng encodeURI so với encodeURIComponent?

Dùng encodeURIComponent (chế độ Thành phần) cho từng giá trị tham số bạn chèn vào URL. Chỉ dùng encodeURI (URL đầy đủ) cho một URL hoàn chỉnh có thể chứa dấu cách hoặc ký tự ngoài ASCII.

Thông báo "malformed percent-encoding" nghĩa là gì?

Một dấu % không được theo sau bởi hai chữ số hex, hoặc các byte không tạo thành UTF-8 hợp lệ. Lỗi hiển thị vị trí của chuỗi sai đầu tiên.

Ký tự tiếng Trung được mã hóa trong URL ra sao?

Mỗi ký tự được chuyển thành các byte UTF-8 và mỗi byte được viết thành %XX, nên 中 thành %E4%B8%AD.

Quyền riêng tư

Công cụ này chạy hoàn toàn trong trình duyệt của bạn. Tệp và văn bản được xử lý ngay trên thiết bị và không bao giờ được tải lên máy chủ của chúng tôi.

Công cụ liên quan