Công cụ này làm gì
URL chỉ chứa được một tập ký tự đơn giản. Mọi thứ khác, như dấu cách, chữ có dấu, emoji hay ký tự có nghĩa trong cú pháp URL, được viết bằng dấu phần trăm và hai chữ số hex cho mỗi byte: dấu cách là %20, "é" là %C3%A9. Công cụ có ba thẻ. Mã hóa đổi văn bản sang dạng đó, Giải mã đổi ngược lại và chỉ rõ chuỗi nào bị hỏng, còn Phân tích URL tách địa chỉ thành giao thức, người dùng, máy chủ, cổng, đường dẫn, truy vấn và đoạn, liệt kê các tham số trong một trình sửa nhỏ và ghép lại URL khi bạn thay đổi.
Ba kiểu mã hóa
Cùng một văn bản có thể mã hóa theo ba cách, và chọn sai là lỗi phổ biến nhất.
- Thành phần (
encodeURIComponent) mã hóa mọi thứ trừ chữ, số và - _ . ! ~ * ' ( ). Dùng cho một giá trị nằm trong URL, như từ khóa tìm kiếm. a/b?c=d&e thành a%2Fb%3Fc%3Dd%26e. - Cả URL (
encodeURI) giữ nguyên cả ; , / ? : @ & = + $ #, nên địa chỉ hoàn chỉnh không đổi cấu trúc: cùng văn bản đó vẫn là a/b?c=d&e. Dùng cho một giá trị riêng lẻ là sai, vì & hay = bên trong sẽ bị hiểu là cú pháp. - Biểu mẫu là kiểu form HTML và
URLSearchParams ghi: dấu cách thành +, và ~ ! ' ( ) cũng bị mã hóa. "café au lait & crème" là caf%C3%A9+au+lait+%26+cr%C3%A8me ở kiểu biểu mẫu.
Cả ba làm việc trên byte UTF-8, nên emoji (một cặp surrogate trong JavaScript) thành bốn byte: 😀 là %F0%9F%98%80. Nửa cặp surrogate lẻ không có dạng UTF-8, nên hàm gốc của JavaScript báo "URI malformed"; công cụ này báo vị trí cụ thể.
Giải mã và các lỗi có thể gặp
Giải mã đảo ngược từng chuỗi. Dấu + chỉ là dấu cách ở kiểu biểu mẫu, còn %2B luôn là dấu cộng. Có hai kiểu lỗi: dấu % không theo sau bởi hai chữ số hex (100%, %zz), và các chuỗi không tạo thành UTF-8 hợp lệ, như %C3%28. Công cụ nêu tên từng lỗi kèm vị trí và giữ nguyên phần không giải mã được để bạn thấy nó nằm đâu. Bật "Dừng ở lỗi đầu tiên" nếu muốn không có kết quả khi có lỗi. Nếu kết quả vẫn còn chuỗi %, ví dụ %2520 thành %20, nhiều khả năng nó bị mã hóa hai lần và có nút giải mã lại.
Tách một URL
Bộ phân tích trước hết tách địa chỉ đúng như bạn viết theo RFC 3986, rồi so từng phần với kết quả của trình phân tích URL trong trình duyệt và hiển thị khác biệt bên dưới: cổng mặc định 443 bị bỏ, ./ trong đường dẫn được giải quyết, và tên miền như münchen.de được viết thành xn--mnchen-3ya.de. Truy vấn rỗng (?) khác với không có truy vấn.
Sửa chuỗi truy vấn
Mỗi tham số là một dòng gồm tên và giá trị. Thứ tự và tên trùng được giữ nguyên; tham số bạn không đụng đến được ghép lại đúng như đã viết, tham số đã sửa được mã hóa bằng %20 hoặc + nếu truy vấn vốn dùng +. Sắp xếp lại, xóa, thêm dòng rồi sao chép URL đã ghép. Xem thêm công cụ Base64 và định dạng JSON khi tham số chứa dữ liệu mã hóa. Mọi thứ chạy trong trình duyệt, không tải lên đâu cả và không bao giờ tự mở liên kết.