ตัวเข้ารหัส / ถอดรหัส URL
URL อนุญาต ASCII บางตัวโดยไม่ต้องหลีก — ช่องว่าง เครื่องหมายแอมเพอร์แซนด์ และ Unicode ต้องกลายเป็น percent-encoded (%20, %26, ไบต์ UTF-8) เข้ารหัสสตริงก่อนประกอบพารามิเตอร์คิวรี ถอดรหัสลิงก์ที่คัดลอกมาอย่างยุ่งเหยิงเพื่ออ่านค่า — สำคัญต่อการดีบักเว็บ
วิธีเข้ารหัสหรือถอดรหัส URL
1. เลือกเข้ารหัสหรือถอดรหัส
2. วางข้อความธรรมดาหรือส่วนประกอบ URL ที่ percent-encode
3. คัดลอกผลสำหรับ fetch URL หรือแท็กแอนะลิติกส์
4. ใช้ encodeURIComponent สำหรับค่าคิวรี ไม่ใช่ทั้ง URL อย่างมืดบอด
ตัวอย่างการเข้ารหัส URL
คิวรีค้นหา
"coffee & tea" เป็นคิวรีกลายเป็น coffee%20%26%20tea ในพารามิเตอร์ ?q=
ชื่อเมือง Unicode
München เข้ารหัสเป็น M%C3%BCnchen ด้วย percent encoding UTF-8
ถอดรหัสพารามิเตอร์ redirect
อ่าน ?next=%2Fdashboard%3Ftab%3D1 เพื่อรู้พาธเป้าหมายการเปลี่ยนเส้นทาง
เมื่อไหร่ควรเข้ารหัส URL
• เมื่อประกอบ query string เองในการทดสอบ
• เมื่อดีบักลิงก์เสียที่มีอักขระพิเศษ
• เมื่อถอดรหัสพารามิเตอร์ UTM แอนะลิติกส์จากล็อก
พื้นฐาน RFC 3986
อักขระสงวนอย่าง ? # & มีความหมายใน URL — เข้ารหัสเฉพาะส่วนข้อมูล โครงสร้าง: scheme://host/path?query#fragment
คำถามที่พบบ่อย
encodeURI กับ encodeURIComponent?
encodeURI คง :// และ ? สำหรับ URL เต็ม encodeURIComponent เข้ารหัสทุกอย่างสำหรับค่าคิวรี — ความต่างของ JS ใช้ในเชิงแนวคิด
เครื่องหมายบวกกับ %20?
query string มักถือ + เป็นช่องว่างใน application/x-www-form-urlencoded — รู้บริบท
ทับในพารามิเตอร์?
encodeURIComponent เข้ารหัส / เป็น %2F — จำเป็นภายในค่าพารามิเตอร์เดียว
ในเครื่อง?
ใช่
โดเมน IDN?
โดเมน Unicode ใช้ punycode ใน DNS — แยกจากการเข้ารหัสพาธ