วิธีเข้ารหัสสตริงสำหรับ URL
Percent-encoding จะแทนที่อักขระทุกตัวที่ไม่ปลอดภัยใน URL ด้วย % ตามด้วยค่าเลขฐานสิบหกของแต่ละไบต์ UTF-8 ของอักขระนั้น โหมดส่วนประกอบซึ่งใช้ encodeURIComponent() เหมาะกับค่าคิวรีหนึ่งค่าหรือพาธหนึ่งช่วง
ตัวอย่างการคำนวณ
| อักขระ | ไบต์ UTF-8 | ส่วนประกอบ |
|---|---|---|
| ␠ | %20 | %20 |
| & | %26 | %26 |
| = | %3D | %3D |
| / | %2F | %2F |
| ? | %3F | %3F |
| é | %C3 %A9 | %C3%A9 |
| 😀 | %F0 %9F %98 %80 | %F0%9F%98%80 |
โหมดส่วนประกอบเข้ารหัสทั้งวลีเป็นค่าเดียวที่ปลอดภัย
- ข้อมูลเข้า
- rock & roll/size=XL? café 😀
- ผลลัพธ์ ·
encodeURIComponent() - rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80
โหมด URL แบบเต็มจะคง & = / ? ไว้ตามเดิม จึงควรใช้กับ URL ที่สมบูรณ์เท่านั้น
- ข้อมูลเข้า
- rock & roll/size=XL? café 😀
- ผลลัพธ์ ·
encodeURI() - rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80
วิธีที่เครื่องมือจัดการ
- ตัวอักษร A–Z และ a–z ตัวเลข 0–9 และ - _ . ! ~ * ' ( ) จะไม่ถูกเปลี่ยนเลย
- อักขระอื่นทั้งหมดจะถูกแปลงเป็นไบต์ UTF-8 และแต่ละไบต์เขียนเป็น % ตามด้วยเลขฐานสิบหกตัวพิมพ์ใหญ่สองหลัก: é ใช้สองไบต์ ส่วนอีโมจิส่วนใหญ่ใช้สี่ไบต์
- โหมดส่วนประกอบยังเข้ารหัสอักขระสงวน : / ? # [ ] @ & = + $ , ; ด้วย จึงไม่สามารถเปลี่ยนโครงสร้างของ URL ได้