วิธีเข้ารหัสและถอดรหัส URL

· 3 นาทีในการอ่าน

หากคุณเคยเห็น %20 ใน URL ที่ควรเป็นช่องว่าง หรือ %C3%A9 ที่ควรเป็นอักขระที่มีเครื่องหมาย คุณได้พบกับการเข้ารหัส URL แล้ว มันเป็นพื้นฐานของเว็บ และการเข้าใจมันช่วยดีบักลิงก์ที่ขาด ปัญหา API และการส่งฟอร์ม

การเข้ารหัส URL ทำอะไร

URL สามารถมีอักขระที่ปลอดภัยจำนวนจำกัดเท่านั้น: ตัวอักษร (A-Z, a-z) ตัวเลข (0-9) และอักขระพิเศษไม่กี่ตัว (-, _, ., ~) ทุกอย่างที่เหลือ — ช่องว่าง สำเนียง อิโมจิ สัญลักษณ์เช่น &, =, #, ? — ต้องถูกแปลงเป็นรูปแบบที่ปลอดภัย

การเข้ารหัส URL (เรียกอีกอย่างว่า percent-encoding) แทนที่อักขระที่ไม่ปลอดภัยด้วย % ตามด้วยค่าฐานสิบหกของไบต์:

อักขระ เข้ารหัส
ช่องว่าง %20
& %26
= %3D
# %23
? %3F
/ %2F
@ %40

เมื่อใดที่จำเป็นต้องเข้ารหัส URL

วิธีเข้ารหัสและถอดรหัส

  1. เลือกเข้ารหัสหรือถอดรหัส — เลือกทิศทาง ใช้ encodeURIComponent สำหรับพารามิเตอร์การค้นหาหรือ encodeURI สำหรับ URL ทั้งหมด
  2. วางอินพุตของคุณ — ป้อนข้อความหรือ URL ผลลัพธ์อัปเดตทันที
  3. คัดลอกเอาต์พุต — ใช้ผลลัพธ์ในโค้ด คำขอ API หรือเบราว์เซอร์ของคุณ

เคล็ดลับ

คำถามที่พบบ่อย

ความแตกต่างระหว่าง encodeURI และ encodeURIComponent คืออะไร?

encodeURI รักษาอักขระที่ถูกต้องในโครงสร้าง URL (สแลช เครื่องหมายโคลอน เครื่องหมายคำถาม) encodeURIComponent เข้ารหัสทุกอย่างยกเว้นตัวอักษร ตัวเลข และอักขระที่ปลอดภัยไม่กี่ตัว ใช้ encodeURIComponent สำหรับค่าพารามิเตอร์การค้นหา encodeURI สำหรับ URL ทั้งหมด

ทำไมช่องว่างถึงกลายเป็น %20 หรือ +?

ในการเข้ารหัส URL ช่องว่างกลายเป็น %20 ในข้อมูลฟอร์ม (application/x-www-form-urlencoded) ช่องว่างกลายเป็น + ทั้งคู่ถูกต้องในบริบทของตน แต่ %20 เป็นมาตรฐานสากลสำหรับ URL

ฉันต้องเข้ารหัส URL ของฉันด้วยตนเองหรือไม่?

ในกรณีส่วนใหญ่ ภาษาหรือเฟรมเวิร์กของคุณจัดการการเข้ารหัสโดยอัตโนมัติ การเข้ารหัสด้วยตนเองมีประโยชน์เมื่อสร้าง URL ด้วยมือ ดีบักคำขอ API หรือทำงานกับสตริงคำขอที่มีอักขระพิเศษ

ข้อมูลของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?

ไม่ การเข้ารหัสและการถอดรหัสทั้งหมดเกิดขึ้นในเบราว์เซอร์ของคุณ