Về công cụ này
Dấu cách, ký tự có dấu, &, = và đa số ký hiệu không được phép xuất hiện thô trong URL — chúng phải trở thành chuỗi %XX (percent encoding). Lựa chọn quan trọng là dùng hàm nào: encodeURIComponent mã hóa tất cả kể cả &, =, ? — đúng cho giá trị tham số; encodeURI giữ nguyên ký tự cấu trúc URL — chỉ dùng để mã hóa URL hoàn chỉnh.
Nhầm lẫn hai hàm này là bug kinh điển: dùng encodeURI cho tham số sẽ âm thầm làm hỏng giá trị chứa & hay =. Đọc so sánh đầy đủ tại encodeURI vs encodeURIComponent. Trình phân tích query string bên dưới giải mã từng tham số của URL thành bảng có thể chỉnh sửa — đổi tên hay giá trị là URL đầy đủ được dựng lại. Mọi thứ chạy trong trình duyệt — thêm công cụ tại dec0de.dev.
Mã hoá URL (percent) thay những ký tự có thể phá vỡ URL bằng một dấu % theo sau là giá trị byte dạng hex — dấu cách thành %20, dấu & thành %26. Đó là cách đưa từ khoá tìm kiếm, đích chuyển hướng, token và văn bản không phải ASCII vào một link hay query string một cách an toàn. Các ký tự dành riêng (: / ? # [ ] @ ! $ & ' ( ) * + , ; =), dấu cách, và bất cứ gì ngoài tập không dành riêng (chữ, số và - _ . ~) sẽ được mã hoá; phần còn lại giữ nguyên dễ đọc.
Câu hỏi thường gặp
encodeURIComponent hay encodeURI — nên dùng cái nào?
Dùng encodeURIComponent cho một giá trị truy vấn hay một đoạn path — nó mã hoá &, =, ?, / và hơn nữa. Chỉ dùng encodeURI cho cả một URL mà bạn không muốn làm hỏng. Mã hoá một giá trị bằng encodeURI là lỗi kinh điển.
Vì sao dấu cách khi là %20 khi là +?
Trong path của URL, dấu cách là %20. Trong query string dạng form-urlencoded, dấu cách thường viết là +. Cả hai đều giải mã về dấu cách, và nút «+ là dấu cách» chuyển giữa hai chế độ.
Tôi có thể mã hoá cả danh sách giá trị cùng lúc không?
Có. Bật «Hàng loạt: mỗi dòng một giá trị» và mỗi dòng được mã hoá hoặc giải mã độc lập, giữ nguyên thứ tự và dòng trống. Kết quả có thể sao chép hoặc tải về dưới dạng tệp văn bản.
Ký tự nào thực sự cần mã hoá?
Ký tự dành riêng (: / ? # [ ] @ ! $ & ' ( ) * + , ; =), dấu cách, văn bản không phải ASCII và ký tự điều khiển. Tập không dành riêng — chữ, số và - _ . ~ — luôn được giữ nguyên.
Vì sao giải mã báo lỗi «chuỗi thoát không hợp lệ»?
Sau % phải là đúng hai chữ số hex, và các byte thu được phải là UTF-8 hợp lệ. Dấu % nguyên bản chưa mã hoá (hãy viết %25), chuỗi bị cắt như %2, hay byte từ bảng mã khác đều làm hỏng việc giải mã. Công cụ này nêu tên chuỗi lỗi cùng vị trí và đưa bạn tới đó.
Dữ liệu URL của tôi có được giữ riêng tư?
Có. Mã hoá, giải mã và phân tích query string đều chạy trong trình duyệt. Dữ liệu bạn nhập chỉ được lưu trong local storage của trình duyệt này để không mất khi tải lại — nút Xoá sẽ xoá sạch. Không có gì được tải lên đâu cả.