อักขระบางตัวต้องเป็นส่วนหนึ่งของ URL (เช่น เว้นวรรค) และอักขระอื่นๆ ไม่ได้
อักขระมีความหมายพิเศษใน URL ในแบบฟอร์ม HTML อักขระ =
คือ
ใช้เพื่อแยกชื่อออกจากค่า ไวยากรณ์ทั่วไปของ URI ใช้การเข้ารหัส URL
ในการจัดการกับปัญหานี้ ในขณะที่ฟอร์ม HTML จะใช้แทนเพิ่มเติม
แทนที่จะใช้การเข้ารหัสแบบเปอร์เซ็นต์สำหรับอักขระดังกล่าวทั้งหมด
ตัวอย่างเช่น การเว้นวรรคในสตริงจะเข้ารหัสด้วย %20
หรือแทนที่ด้วย
เครื่องหมายบวก (+
) หากคุณใช้อักขระไปป์ (|
) เป็นตัวคั่น
เพื่อเข้ารหัสไปป์เป็น %7C
คอมมาในสตริงควรเข้ารหัสเป็น %2C
เราขอแนะนำให้คุณใช้ไลบรารีการสร้าง URL ปกติของแพลตฟอร์มเพื่อ เข้ารหัส URL ของคุณโดยอัตโนมัติ เพื่อให้มั่นใจว่า URL มีการกำหนดเป็นอักขระหลีกอย่างเหมาะสมสำหรับ ที่มีการจัดการครบวงจรได้เลย
การสร้าง URL ที่ถูกต้อง
คุณอาจคิดว่า "ถูกต้อง" URL ชัดเจน แต่มีความชัดเจน
ยังไม่ใช่แบบนั้น URL ที่ป้อนในแถบที่อยู่เว็บใน
อาจมีสัญลักษณ์พิเศษ (เช่น
"上海+中國"
); เบราว์เซอร์จำเป็นต้องแปลเป็นการภายใน
อักขระเหล่านั้นเป็นการเข้ารหัสที่แตกต่างกันก่อนส่ง
โทเค็นเดียวกันจะหมายถึงโค้ดที่สร้างหรือยอมรับอินพุต UTF-8
อาจถือว่า URL ที่มีอักขระ UTF-8 นั้น "ถูกต้อง" แต่ก็ต้อง
เพื่อแปลอักขระเหล่านั้นก่อนที่จะส่งไปยังเว็บเซิร์ฟเวอร์
กระบวนการนี้เรียกว่า
การเข้ารหัส URL หรือการเข้ารหัสเปอร์เซ็นต์
อักขระพิเศษ
เราจำเป็นต้องแปลอักขระพิเศษเนื่องจาก URL ทั้งหมดต้องสอดคล้องกับไวยากรณ์ที่ระบุโดย เครื่องแบบ ข้อกำหนดของตัวระบุทรัพยากร (URI) ในความเป็นจริงหมายความว่า URL จะต้องประกอบด้วยชุดย่อยพิเศษของอักขระ ASCII ได้แก่ สัญลักษณ์ที่เป็นตัวอักษรและตัวเลขคละกัน และอักขระที่สงวนไว้บางตัวเพื่อใช้เป็นตัวควบคุม อักขระภายใน URL ตารางนี้จะสรุปอักขระเหล่านี้
ตั้งค่า | อักขระ | การใช้ URL |
---|---|---|
ตัวอักษรและตัวเลขคละกัน | a b c d e f g h i j k l m n o p q r s t u v w x y z โ ฆ ษ ณ า ท ด แ ท น ไม่มี 0 1 2 3 4 5 6 7 8 9 | สตริงข้อความ การใช้รูปแบบ (http ) พอร์ต (8080 ) ฯลฯ |
ไม่ได้จอง | - _ ~ | สตริงข้อความ |
จองแล้ว | * ' ( ) : @ & = + $ , / ? % # [ ] | อักขระควบคุมและ/หรือสตริงข้อความ |
เมื่อสร้าง URL ที่ถูกต้อง คุณต้องตรวจสอบว่า URL นั้นมีเฉพาะอักขระที่แสดงใน การปฏิบัติตาม URL เพื่อใช้ชุดอักขระนี้โดยทั่วไป จะก่อให้เกิดปัญหา 2 ประการ อันหนึ่งคือ การละเว้นสิ่งใดสิ่งหนึ่ง และการทดแทนอีกอย่างหนึ่งอย่างนั้น
- มีอักขระที่คุณต้องการจัดการอยู่นอก
ข้างต้น ตัวอย่างเช่น อักขระในภาษาต่างประเทศ
เช่น
上海+中國
จำเป็นต้องเข้ารหัสโดยใช้ ที่อยู่เหนืออักขระ ตามการประชุมยอดนิยม การเว้นวรรค (ซึ่งก็คือ ไม่อนุญาตภายใน URL) มักจะแสดงโดยใช้เครื่องหมายบวก'+'
อักขระด้วย - อักขระอยู่ภายในชุดด้านบนเป็นอักขระสงวน
แต่จำเป็นต้องใช้จริงๆ
ตัวอย่างเช่น
?
จะใช้ภายใน URL เพื่อระบุว่า จุดเริ่มต้นของสตริงการค้นหา หากคุณต้องการใช้ สตริง "? และเรื่องลึกลับ" คุณจะต้องเข้ารหัส'?'
อักขระ
อักขระทั้งหมดที่จะเข้ารหัส URL จะเข้ารหัส
โดยใช้อักขระ '%'
และเลขฐานสิบหก 2 ตัว
ที่สอดคล้องกับอักขระ UTF-8 ตัวอย่างเช่น
上海+中國
ใน UTF-8 จะเข้ารหัส URL เป็น
%E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B
สตริง ? and the Mysterians
จะมีการเข้ารหัส URL เป็น
%3F+and+the+Mysterians
หรือ%3F%20and%20the%20Mysterians
อักขระทั่วไปที่ต้องเข้ารหัส
อักขระทั่วไปที่จะต้องเข้ารหัสมีดังนี้
อักขระที่ไม่ปลอดภัย | ค่าที่เข้ารหัส |
---|---|
Space | %20 |
" | %22 |
< | %3C |
> | %3E |
# | %23 |
% | %25 |
| | %7C |
การแปลง URL ที่คุณได้รับจากข้อมูลจากผู้ใช้เป็นบางครั้ง ซับซ้อน ตัวอย่างเช่น ผู้ใช้สามารถป้อนที่อยู่เป็น "5th&Main St." โดยทั่วไป คุณควรสร้าง URL จากชิ้นส่วน โดยถือ ข้อมูลจากผู้ใช้เป็นอักขระลิเทอรัล
นอกจากนี้ URL จะมีอักขระได้ไม่เกิน 16, 384 ตัวสำหรับบริการบนเว็บของ Google Maps Platform ทั้งหมด และเว็บ API แบบคงที่ สำหรับบริการส่วนใหญ่ จำนวนอักขระสูงสุดนี้แทบจะไม่ได้ใช้เลย อย่างไรก็ตาม โปรดทราบว่าบริการบางอย่างมีพารามิเตอร์หลายรายการที่อาจทำให้เกิด URL แบบยาว