มีหลายวิธีในการเข้ารหัสสตริง URL ใน JavaScript: Escape (), encodeuri () และ encodeuricomponent () บทบาทของการเข้ารหัสเหล่านี้แตกต่างกันไป
วิธีการหลบหนี ():
สตริงที่ระบุถูกเข้ารหัสโดยใช้ชุดอักขระละติน ISO อักขระอวกาศทั้งหมดเครื่องหมายวรรคตอนอักขระพิเศษและอักขระที่ไม่ใช่ ASCII อื่น ๆ จะถูกแปลงเป็นการเข้ารหัสอักขระ %xx (XX เท่ากับจำนวนเลขฐานสิบหกของอักขระที่เข้ารหัสในตารางชุดอักขระ) ตัวอย่างเช่นการเข้ารหัสที่สอดคล้องกันของอักขระอวกาศคือ %20
อักขระที่จะไม่ถูกเข้ารหัสด้วยวิธีนี้: @ * / +
วิธีการ ENCODEURI ():
แปลงสตริง URI เป็นสตริงรูปแบบหลบหนีในรูปแบบการเข้ารหัส UTF-8
อักขระที่จะไม่ถูกเข้ารหัสด้วยวิธีนี้:! - - -
วิธีการ ENCODEURICOMPONENT ():
แปลงสตริง URI เป็นสตริงรูปแบบหลบหนีในรูปแบบการเข้ารหัส UTF-8 เมื่อเทียบกับ encodeuri () วิธีนี้จะเข้ารหัสอักขระมากขึ้นเช่น / ฯลฯ ดังนั้นหากสตริงมีหลายส่วนของ URI วิธีนี้ไม่สามารถใช้เพื่อเข้ารหัสได้มิฉะนั้น URL จะแสดงข้อผิดพลาดหลังจากที่มีการเข้ารหัส / อักขระ
อักขระที่จะไม่ถูกเข้ารหัสด้วยวิธีนี้:! -
ดังนั้นสำหรับสตริงภาษาจีนหากคุณไม่ต้องการแปลงรูปแบบการเข้ารหัสสตริงเป็นรูปแบบ UTF-8 (ตัวอย่างเช่นเมื่อ charset ของหน้าดั้งเดิมและหน้าเป้าหมายเหมือนกัน) คุณจะต้องใช้ Escape เท่านั้น หากหน้าของคุณคือ GB2312 หรือการเข้ารหัสอื่น ๆ และหน้าเว็บที่ยอมรับพารามิเตอร์คือการเข้ารหัส UTF-8 คุณต้องใช้ encodeuri หรือ encodeuricomponent
นอกจากนี้ยังมีการแนะนำ encodeuri/encodeuricomponent หลังจาก JavaScript 1.5 ในขณะที่ Escape พร้อมใช้งานใน JavaScript 1.0