ตัวเข้ารหัส / ถอดรหัส 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 — แยกจากการเข้ารหัสพาธ