ข้ามไปยังเนื้อหาหลัก

เข้ารหัสพารามิเตอร์ของสตริงคิวรีให้ถูกต้อง

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

ตัวอย่างการคำนวณ

โหมด URL แบบเต็มคง & ไว้ในค่า เซิร์ฟเวอร์จึงอ่านได้สองพารามิเตอร์แทนที่จะเป็นหนึ่ง

ข้อมูลเข้า
https://example.com/search?q=salt & pepper&page=2
ผลลัพธ์ · encodeURI()
https://example.com/search?q=salt%20&%20pepper&page=2

พารามิเตอร์ที่เซิร์ฟเวอร์อ่านได้

  • "q" = "salt "
  • " pepper" = ""
  • "page" = "2"

การเข้ารหัสค่าในโหมดส่วนประกอบก่อนจะทำให้ยังคงเป็นพารามิเตอร์เดียว

ข้อมูลเข้า
salt & pepper
ผลลัพธ์ · encodeURIComponent()
salt%20%26%20pepper

https://example.com/search?q=salt%20%26%20pepper&page=2

พารามิเตอร์ที่เซิร์ฟเวอร์อ่านได้

  • "q" = "salt & pepper"
  • "page" = "2"

เปรียบเทียบโหมดส่วนประกอบกับ URL แบบเต็มทีละอักขระ

อักขระส่วนประกอบURL แบบเต็ม
:%3A:
/%2F/
?%3F?
#%23#
&%26&
=%3D=
+%2B+
␠%20%20
é%C3%A9%C3%A9

วิธีที่เครื่องมือจัดการ

  • เข้ารหัสชื่อและค่าของแต่ละพารามิเตอร์แยกกันในโหมดส่วนประกอบ ซึ่งจะ escape & = ? # + และ /
  • นำคู่ที่เข้ารหัสแล้วมาต่อกันในรูป ชื่อ=ค่า คั่นด้วย & แล้วเติมผลลัพธ์ไว้หลัง ? ใน URL
  • ใช้โหมด URL แบบเต็มกับ URL ทั้งเส้นเท่านั้น: โหมดนี้คง : / ? # & = + ไว้ตามเดิม จึงปกป้องค่าที่มีอักขระเหล่านี้ไม่ได้

คู่มือการเข้ารหัส URL