Xây dựng giá trị query-string
Mọi đầu vào của người dùng bạn đặt vào ?q=... đều phải được mã hóa bằng chế độ Component. Chế độ URI sẽ để nguyên = và &, làm hỏng URL khi giá trị có chứa chúng.
Mã hóa văn bản bất kỳ thành chuỗi URL an toàn theo percent-encoding, hoặc giải mã URL đã mã hóa trở về văn bản gốc. Xem trước trực tiếp, an toàn UTF-8, chạy hoàn toàn trong trình duyệt.
Component (encodeURIComponent) escape mọi thứ không phải ký tự unreserved — an toàn nhất cho giá trị query-string, đoạn path, hoặc một trường đơn lẻ. URI (encodeURI) giữ nguyên các ký tự cấu trúc URL (:/?#=&) — dùng cho toàn bộ URL. Form (application/x-www-form-urlencoded) là Component cộng thêm việc khoảng trắng thành '+' — đúng kiểu form HTML.
RFC 3986 định nghĩa tập ký tự "unreserved" không cần mã hóa: A-Z a-z 0-9 - _. ~. Mọi ký tự khác đều được percent-encoding. encodeURIComponent còn mã hóa thêm :/?#&= mà encodeURI giữ nguyên. Sự khác biệt này quan trọng khi mã hóa giá trị query so với toàn bộ URL.
Thả tệp văn bản vào đây, hoặc nhấp để chọn
Mọi tệp văn bản UTF-8:.txt,.csv,.json,.url,.log
Nhanh, chính xác, chỉ chạy trong trình duyệt — dành cho lập trình viên, copywriter và bất kỳ ai đang debug URL.
Chọn Component, Full URI hoặc Form tùy theo thứ bạn cần mã hóa — giá trị query-string, toàn bộ URL, hay payload form HTML.
Mọi thao tác mã hóa và giải mã đều diễn ra trong trình duyệt bằng JavaScript thuần. Văn bản và URL của bạn không rời khỏi thiết bị.
Kết quả cập nhật theo từng phím gõ — không cần nút "Mã hóa", không cần gửi lên máy chủ.
Emoji, ký tự CJK, chữ Latinh có dấu và Cyrillic đều round-trip chính xác qua encodeURIComponent và ngược lại.
Khi giải mã, có tùy chọn coi '+' là khoảng trắng — quy ước mà form HTML sử dụng theo application/x-www-form-urlencoded.
Thả tệp.txt,.csv hoặc.json để mã hóa hoặc giải mã trong một bước. Kết quả tải xuống dưới dạng.txt sạch sẽ.
Ba API gốc của trình duyệt, ba chế độ, tất cả chạy ngay trong trang bạn đang đọc.
Mỗi lần gõ phím, chuỗi đầu vào được truyền vào một hàm JavaScript nhỏ. Không có debounce, không gọi API, không fetch — hàm chạy đồng bộ ngay trong tab trình duyệt của bạn.
Component gọi encodeURIComponent — escape mọi ký tự không thuộc A-Z a-z 0-9 - _. ~. URI gọi encodeURI — giữ nguyên :/?#=& để URL đầy đủ vẫn hợp lệ. Form dùng encodeURIComponent và thay khoảng trắng bằng + theo application/x-www-form-urlencoded.
Cả encodeURIComponent lẫn encodeURI đều chuyển chuỗi sang byte UTF-8 trước khi percent-encoding từng byte không an toàn. Vì vậy chữ Trung 中 trở thành %E4%B8%AD — đúng như RFC 3986 yêu cầu.
Kết quả được đặt vào ô output chỉ-đọc. Nhấp Sao chép để đưa vào clipboard qua navigator.clipboard.writeText, hoặc Tải xuống để lưu thành .txt qua Blob URL — tất cả đều ở trong trình duyệt của bạn.
Những tình huống thực tế mà chọn đúng chế độ mã hóa giúp tránh lỗi.
Mọi đầu vào của người dùng bạn đặt vào ?q=... đều phải được mã hóa bằng chế độ Component. Chế độ URI sẽ để nguyên = và &, làm hỏng URL khi giá trị có chứa chúng.
Một số ứng dụng chat và file PDF làm hỏng liên kết khi chứa khoảng trắng hay ký tự không phải ASCII. Hãy chạy URL qua chế độ URI để có thể copy-paste an toàn ở mọi nơi.
Khi API từ chối request, dán URL vào chế độ Giải mã để xem máy chủ thực sự nhận được gì. Các giá trị bị mã hóa hai lần (khi % bị mã hóa thành %25) sẽ lộ ra ngay lập tức.
Khi debug body POST dạng application/x-www-form-urlencoded, hãy giải mã với tùy chọn "+ là khoảng trắng" được bật. Đó là quy ước trình duyệt sử dụng, và quên nó là nguyên nhân số 1 của lỗi "vì sao username của tôi hiện ra với dấu cộng".
Các URL bạn mã hóa thường chứa email khách hàng thật, ID hay session token — chính là loại dữ liệu bạn không muốn dán vào công cụ trên máy chủ của người lạ. iKit URL Encoder chạy bằng JavaScript đã được tải sẵn trong trình duyệt, nên đầu vào không bao giờ rời khỏi tab của bạn.
fetch, XHR, hay beacon trong khi mã hóa hoặc giải mã.
Hướng dẫn chi tiết và so sánh công cụ từ blog iKit.
The 30-year-old form-encoding quirk explained — when + means space, when it means literal +, and how to fix the email-with-plus bug.
When to reach for Base64 versus URL percent-encoding, and what each encoding actually solves.
Pretty-print, validate, and structurally diff messy JSON in any browser.
Component (encodeURIComponent) escape mọi thứ không phải ký tự unreserved — an toàn nhất cho giá trị query-string, đoạn path, hoặc một trường đơn lẻ. URI (encodeURI) giữ nguyên các ký tự cấu trúc URL (:/?#=&) — dùng cho toàn bộ URL. Form (application/x-www-form-urlencoded) là Component cộng thêm việc khoảng trắng thành '+' — đúng kiểu form HTML.
RFC 3986 định nghĩa tập ký tự "unreserved" không cần mã hóa: A-Z a-z 0-9 - _. ~. Mọi ký tự khác đều được percent-encoding. encodeURIComponent còn mã hóa thêm :/?#&= mà encodeURI giữ nguyên. Sự khác biệt này quan trọng khi mã hóa giá trị query so với toàn bộ URL.
Ba nguyên nhân thường gặp: (1) bản gốc đã được Form-encoded nên '+' phải được coi là khoảng trắng — bật tùy chọn đó. (2) Mã hóa hai lần — đầu vào đã bị mã hóa hai lần; hãy giải mã thêm lần nữa. (3) Chuỗi percent không hợp lệ — dấu % lạc không theo sau bởi hai chữ số hex. Kiểm tra thông báo lỗi để biết vị trí byte chính xác.
Đúng với chế độ Component — chúng tôi gọi trực tiếp encodeURIComponent. Chế độ Form bổ sung các điều chỉnh form-encoding chuẩn (! ' * thành %21 %27 %28 %29 %2A) theo RFC 3986 + WHATWG. Chế độ URI gọi encodeURI, đúng như cách phần lớn ngôn ngữ hiểu về 'percent-encode một URL'.
Không. Toàn bộ công cụ là JavaScript trong trang này — việc mã hóa và giải mã diễn ra trong trình duyệt. Bạn có thể kiểm chứng bằng cách mở DevTools → Network và quan sát: không có request nào được gửi trong các thao tác encode hay decode.