การเข้ารหัส URL

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

อักขระบางตัวต้องไม่เป็นส่วนหนึ่งของ URL (เช่น ช่องว่าง) และอักขระบางตัวมีความหมายพิเศษใน URL ในแบบฟอร์ม HTML ระบบจะใช้อักขระ = เพื่อแยกชื่อออกจากค่า ไวยากรณ์ทั่วไปของ URI ใช้การเข้ารหัส URL เพื่อจัดการกับปัญหานี้ ขณะที่แบบฟอร์ม HTML จะสร้างการแทนที่เพิ่มเติมบางส่วนแทนที่จะใช้การเข้ารหัสเปอร์เซ็นต์สําหรับอักขระดังกล่าวทั้งหมด

เช่น ช่องว่างในสตริงจะได้รับการเข้ารหัสด้วย %20 หรือแทนที่ด้วยเครื่องหมายบวก (+) หากคุณใช้อักขระไปป์ (|) เป็นตัวคั่น อย่าลืมเข้ารหัสท่อเป็น %7C คอมมาในสตริงควรเข้ารหัสเป็น %2C

เราขอแนะนําให้คุณใช้ไลบรารีการสร้าง URL ตามปกติของแพลตฟอร์มเพื่อเข้ารหัส URL โดยอัตโนมัติเพื่อให้แน่ใจว่า URL จะมีการ Escape อย่างถูกต้องสําหรับแพลตฟอร์มของคุณ

การสร้าง URL ที่ถูกต้อง

คุณอาจคิดว่า URL "ถูกต้อง" เป็น URL ที่ชัดเจนด้วยตนเอง แต่ก็ไม่เป็นเช่นนั้น เช่น URL ที่ป้อนในแถบที่อยู่ในเบราว์เซอร์อาจมีสัญลักษณ์พิเศษ (เช่น "上海+中國") ซึ่งเบราว์เซอร์ต้องแปลอักขระเหล่านั้นเป็นการการเข้ารหัสแบบอื่นก่อนที่จะส่ง สําหรับโทเค็นเดียวกัน โค้ดใดๆ ที่สร้างหรือยอมรับอินพุต UTF-8 อาจถือว่า URL ที่มีอักขระ UTF-8 เป็น "valid" แต่จะต้องมีการแปลอักขระเหล่านั้นก่อนที่จะส่งให้กับเว็บเซิร์ฟเวอร์ กระบวนการนี้เรียกว่า การเข้ารหัส URL หรือการเข้ารหัสเปอร์เซ็นต์

สัญลักษณ์พิเศษ

เราต้องแปลสัญลักษณ์พิเศษเนื่องจาก URL ทั้งหมดต้องเป็นไปตามไวยากรณ์ที่ระบุไว้ในข้อกําหนด Uniform Resource Identifier (URI) ซึ่งหมายความว่า URL ต้องมีเฉพาะอักขระ ASCII ที่มีสัญลักษณ์พิเศษเท่านั้น ได้แก่ สัญลักษณ์ที่เป็นตัวอักษรและตัวเลขคละกันที่คุ้นเคย และอักขระที่สงวนไว้บางส่วนเพื่อใช้เป็นอักขระควบคุมภายใน URL ตารางนี้สรุปอักขระเหล่านี้

สรุปอักขระของ URL ที่ถูกต้อง
ตั้งค่าอักขระการใช้ URL
ตัวเลขและตัวอักษร ก พ ไ ม้ ต้องการ สตริงข้อความ การใช้งานสคีม (http) พอร์ต (8080) ฯลฯ
ไม่ได้จอง - _ ~ สตริงข้อความ
จองแล้ว ! * ' ( ) ; : @ & = + $ , / ? % # [ ] ควบคุมอักขระและ/หรือสตริงข้อความ

เมื่อสร้าง URL ที่ถูกต้อง คุณต้องตรวจสอบว่ามีเพียงอักขระเหล่านั้นที่แสดงในตารางสรุปอักขระ URL ที่ถูกต้อง โดยทั่วไปแล้ว การสร้าง URL เพื่อใช้อักขระชุดนี้จะทําให้เกิดปัญหา 2 รายการ คือ การละเว้น 1 ครั้งและการแทนที่ 1 รายการ ดังนี้

  • อักขระที่คุณต้องการจัดการอยู่นอกชุดด้านบน เช่น อักขระภาษาต่างประเทศ เช่น 上海+中國 ต้องเข้ารหัสโดยใช้อักขระด้านบน ตามรูปแบบยอดนิยม การเว้นวรรค (ซึ่งไม่อนุญาตให้ใช้ใน 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

อักขระทั่วไปที่ต้องใช้การเข้ารหัส

อักขระทั่วไปที่ต้องเข้ารหัสมีดังนี้

อักขระที่ไม่ปลอดภัย ค่าที่เข้ารหัส
เว้นวรรค %20
" %22
< %3C
> %3E
# %23
% %25
| %7C

การแปลง URL ที่ได้รับจากการป้อนข้อมูลผู้ใช้อาจเป็นเรื่องยุ่งยากในบางครั้ง เช่น ผู้ใช้อาจป้อนที่อยู่เป็น "5th& Main St." โดยทั่วไปแล้ว คุณควรสร้าง URL จาก URL เหล่านั้น โดยถือว่าการป้อนข้อมูลของผู้ใช้เป็นอักขระตามตัวอักษร

นอกจากนี้ URL ยังจํากัดอยู่ที่ 8, 192 อักขระสําหรับบริการบนเว็บ Google Maps Platform และ API เว็บแบบคงที่ทั้งหมด สําหรับบริการส่วนใหญ่ แทบจะไม่มีจํานวนอักขระสูงสุดถึงเกณฑ์ที่กําหนด อย่างไรก็ตาม โปรดทราบว่าบริการบางอย่างจะมีพารามิเตอร์หลายรายการซึ่งอาจส่งผลให้เกิด URL แบบยาว