Cách mã hóa URL cho một chuỗi
Mã hóa phần trăm thay mỗi ký tự không an toàn trong URL bằng % và giá trị thập lục phân của từng byte UTF-8 của ký tự đó. Chế độ Thành phần, dùng encodeURIComponent(), phù hợp cho một giá trị truy vấn hoặc một đoạn đường dẫn.
Ví dụ minh họa
| Ký tự | Byte UTF-8 | Thành phần |
|---|---|---|
| ␠ | %20 | %20 |
| & | %26 | %26 |
| = | %3D | %3D |
| / | %2F | %2F |
| ? | %3F | %3F |
| é | %C3 %A9 | %C3%A9 |
| 😀 | %F0 %9F %98 %80 | %F0%9F%98%80 |
Chế độ Thành phần mã hóa cả cụm từ thành một giá trị an toàn duy nhất.
- Đầu vào
- rock & roll/size=XL? café 😀
- Kết quả ·
encodeURIComponent() - rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80
Chế độ URL đầy đủ giữ nguyên & = / ?, vì vậy chỉ dùng nó cho một URL hoàn chỉnh.
- Đầu vào
- rock & roll/size=XL? café 😀
- Kết quả ·
encodeURI() - rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80
Cách công cụ xử lý
- Chữ cái A–Z và a–z, chữ số 0–9 cùng - _ . ! ~ * ' ( ) không bao giờ bị thay đổi.
- Mọi ký tự khác được chuyển thành byte UTF-8, và mỗi byte được viết là % kèm hai chữ số thập lục phân viết hoa: é chiếm hai byte, phần lớn emoji chiếm bốn byte.
- Chế độ Thành phần cũng mã hóa các ký tự dành riêng : / ? # [ ] @ & = + $ , ; để chúng không thể thay đổi cấu trúc của URL.