เข้ารหัส/ถอดรหัส URL คำถามที่พบบ่อย
เข้ารหัสและถอดรหัสสตริง URL
การเข้ารหัส URL คืออะไร?
การเข้ารหัส URL (percent-encoding) แปลงอักขระพิเศษเป็นรูปแบบที่ปลอดภัยสำหรับ URL โดยใช้ % ตามด้วยรหัสฐานสิบหก ตัวอย่างเช่น ช่องว่างกลายเป็น %20 และ & กลายเป็น %26 นี่ทำให้แน่ใจว่าข้อมูลส่งอย่างถูกต้องผ่าน URL
ฉันควรใช้ encodeURI หรือ encodeURIComponent?
ใช้ encodeURIComponent() เกือบเสมอ มันเข้ารหัสอักขระพิเศษทั้งหมดอย่างถูกต้อง รวมถึง &, =, ? ที่สามารถทำลายพารามิเตอร์ URL encodeURI() เข้ารหัสน้อยกว่าและใช้เพียงแค่สำหรับ URL ทั้งหมดที่มีโครงสร้างที่ถูกต้องแล้ว
ทำไมช่องว่างกลายเป็น %20 หรือ +?
%20 เป็นการเข้ารหัสที่ถูกต้องสำหรับช่องว่างและทำงานทุกที่ใน URL + เป็นทางลัดที่เก่ากว่าสำหรับช่องว่างใน query string เท่านั้น สำหรับความสม่ำเสมอ ใช้ %20 แต่เข้าใจว่า + อาจปรากฏใน query string ที่เก่ากว่า
ฉันต้องเข้ารหัส URL ทั้งหมดหรือไม่?
ไม่ เข้ารหัสเฉพาะค่าข้อมูล ไม่ใช่โครงสร้าง URL (:, //, ?, &, =) เข้ารหัสพารามิเตอร์ query แต่ละตัวด้วย encodeURIComponent() ก่อนวางใน URL อย่าเข้ารหัส URL ทั้งหมดด้วย encodeURI()