Mã hóa và giải mã URL an toàn
URL chỉ có thể chứa một số ký tự nhất định. Khoảng trắng, chữ cái có dấu, emoji và các ký hiệu như &, = hoặc # phải được mã hóa phần trăm — viết dưới dạng % theo sau là hai chữ số thập lục phân — trước khi xuất hiện trong URL. Công cụ này giúp chuyển đổi văn bản sang định dạng đó và ngược lại. Quá trình xử lý diễn ra ngay trên trình duyệt, do đó các URL bạn dán, bao gồm cả token hay dữ liệu cá nhân, sẽ không bao giờ bị gửi lên máy chủ.
Tính năng
- Hai phạm vi mã hóa: mã hóa một giá trị duy nhất (thành phần) hoặc toàn bộ URL mà vẫn giữ nguyên cấu trúc.
- Mã hóa kiểu biểu mẫu: tùy chọn chuyển khoảng trắng thành
+và giải mã+ngược lại thành khoảng trắng. - Hỗ trợ UTF-8 cho mọi ngôn ngữ và emoji.
- Trình xem chuỗi truy vấn (query string): khi giải mã URL, mỗi tham số sẽ hiển thị dưới dạng cặp khóa/giá trị, giúp bạn dễ dàng đọc các link tracking dài và API call.
- Kết quả tức thì với tính năng sao chép bằng một click, cùng nút chuyển đổi chế độ giúp đưa nhanh kết quả trở lại ô nhập liệu để thao tác hai chiều.
Khi nào cần mã hóa URL
Tạo API request. Nếu từ khóa tìm kiếm hoặc giá trị lọc chứa khoảng trắng hoặc ký tự đặc biệt, nó phải được mã hóa trước khi đưa vào query string. Nếu không, các ký tự & hoặc = bên trong giá trị sẽ bị hiểu nhầm là phần bắt đầu của một tham số mới.
Đọc link tracking và redirect. Các link marketing và chuyển hướng đăng nhập thường chứa một URL hoàn chỉnh được mã hóa bên trong một URL khác. Hãy giải mã để xem link thực sự trỏ đến đâu và chứa những tham số nào.
Debug web form. Khi submit form, các trường dữ liệu được mã hóa thành các cặp key=value nối với nhau bằng &, và khoảng trắng được đổi thành +. Giải mã raw body sẽ cho bạn thấy chính xác những gì đã được gửi đi.
Chia sẻ link chứa ký tự không phải tiếng Anh. Trình duyệt hiển thị https://example.com/東京 rất đẹp mắt, nhưng request thực tế lại sử dụng %E6%9D%B1%E4%BA%AC. Việc mã hóa sẽ cho thấy định dạng chính xác mà server nhận được.
Ký tự dành riêng và không dành riêng
Chuẩn RFC 3986 định nghĩa ký tự không dành riêng (không bao giờ cần mã hóa) gồm: chữ cái, chữ số, -, ., _ và ~. Ký tự dành riêng — : / ? # [ ] @ ! $ & ' ( ) * + , ; = — có ý nghĩa đặc biệt trong URL và bắt buộc phải mã hóa nếu chúng nằm trong một giá trị. Mọi ký tự khác, bao gồm khoảng trắng và tất cả ký tự non-ASCII, luôn phải được mã hóa.
Mã hóa URL khác với Base64. Nếu bạn cần truyền dữ liệu nhị phân hoặc muốn một định dạng rút gọn chỉ gồm chữ cái, hãy dùng công cụ mã hóa Base64 — ở chế độ Base64URL, kết quả tạo ra hoàn toàn an toàn để đưa trực tiếp vào URL.