ฟังก์ชัน encodeURI() ใช้เข้ารหัส (encode) URI ทั้งหมด โดยแทนที่อักขระพิเศษด้วยรูปแบบ %xx ยกเว้น reserved characters ที่มีความหมายพิเศษใน URI
ไวยากรณ์
encodeURI(uri)
ตัวอย่าง
<html> <head> <title>JavaScript Example</title> </head> <body> <script type="text/javascript"> var result1 = encodeURI('https://www.qries.com/?x=шеллы'); document.write(result1); document.write("<br>"); var result2 = encodeURI('https://www.tutorialspoint.com/?x=шеллы'); document.write(result2); </script> </body> </html>
ผลลัพธ์
https://www.qries.com/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B https://www.tutorialspoint.com/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B
อักขระที่ไม่ถูกเข้ารหัส (Reserved characters):
; , / ? : @ & = + $ # - _ . ! ~ * ' ( )
เมื่อไหร่ใช้ encodeURI vs encodeURIComponent:
- encodeURI(): เข้ารหัส URL ทั้งหมด (มี protocol, domain, path, query)
- encodeURIComponent(): เข้ารหัสค่า parameter เดียว (query value, path segment)
ตัวอย่างการใช้งานจริง:
const baseUrl = 'https://api.example.com/search'; const query = 'ไทย & English'; const url = baseUrl + '?q=' + encodeURIComponent(query); // https://api.example.com/search?q=%E0%B8%94%E0%B8%B2%E0%B8%A3%20%26%20English