วิธีใช้งาน
- เลือกเข้ารหัสหรือถอดรหัส
- เลือก Component สำหรับค่าเดียว (เช่น พารามิเตอร์ query หนึ่งตัว) หรือ Full URL สำหรับ URL ทั้งหมด
- พิมพ์หรือวางข้อความของคุณ ผลลัพธ์จะปรากฏทันทีทางด้านขวา (หรือด้านล่างบนโทรศัพท์)
- คัดลอกผลลัพธ์ หรือใช้ “ใช้ผลลัพธ์เป็นอินพุต” เพื่อย้อนกลับการทำงานและตรวจสอบการแปลงไปกลับ
วิธีการทำงาน
URL มีชุดอักขระ ASCII ที่ใช้ได้จำกัดเท่านั้น อักขระอื่น ๆ เช่น ช่องว่าง ตัวอักษรที่มีเครื่องหมายวรรณยุกต์ และอิโมจิ จะถูกเขียนเป็นเปอร์เซ็นต์ escape: อักขระนั้นจะถูกแปลงเป็นไบต์ UTF-8 และแต่ละไบต์กลายเป็น % ตามด้วยเลขฐานสิบหกสองหลัก ช่องว่างกลายเป็น %20, é กลายเป็น %C3%A9 และ € กลายเป็น %E2%82%AC
โหมด Component ใช้ encodeURIComponent และ decodeURIComponent ของ JavaScript โดยจะ escape อักขระทุกตัวที่มีความหมายพิเศษใน URL รวมถึง / ? # & = + : และ @ เพื่อให้ผลลัพธ์สามารถวางไว้ในค่าคิวรีหรือส่วนของ path เพียงส่วนเดียวได้อย่างปลอดภัย โดยคงอักขระ A–Z, a–z, 0–9 และ - _ . ! ~ * ' ( ) ไว้เท่านั้น
โหมด Full URL ใช้ encodeURI และ decodeURI โดยถือว่าข้อมูลเข้าเป็น URL ที่สมบูรณ์แล้ว และคงอักขระสงวน ; , / ? : @ & = + $ # ไว้ จึงทำให้ที่อยู่ยังใช้งานได้ เมื่อถอดรหัส decodeURI จะไม่แตะ escape ของอักขระสงวนเหล่านั้น: %2F จะยังเป็น %2F เพราะหากเปลี่ยนเป็น / จะทำให้ความหมายของ URL เปลี่ยนไป
ตัวเลือก form-data เป็นไปตาม application/x-www-form-urlencoded ซึ่งเป็นรูปแบบที่เบราว์เซอร์ใช้เมื่อส่งฟอร์ม HTML: ช่องว่างเขียนเป็น + แทน %20 เมื่อถอดรหัสด้วยตัวเลือกนี้ เครื่องหมาย + ทุกตัวจะกลายเป็นช่องว่าง ส่วนเครื่องหมายบวกจริงต้องเขียนเป็น %2B
ข้อมูลที่ไม่ถูกต้องจะไม่ถูกทิ้ง หากมี % ที่ไม่ได้ตามด้วยเลขฐานสิบหกสองหลัก หรือลำดับ escape ไม่ได้ประกอบเป็น UTF-8 ที่ถูกต้อง เครื่องมือจะแสดงตำแหน่งปัญหาและเก็บข้อความเดิมไว้ให้คุณแก้ไข
ตัวอย่าง
การใส่ค่าลงในสตริงคิวรี
หากต้องการค้นหา “Rock & Roll” ที่ https://example.com/search?q=… ให้เข้ารหัสเฉพาะค่าในโหมด Component: Rock%20%26%20Roll หากไม่เข้ารหัส เครื่องหมาย & จะสิ้นสุดพารามิเตอร์ q และเริ่มพารามิเตอร์ใหม่ชื่อ “ Roll”
แก้ URL ที่มีช่องว่างและเครื่องหมายกำกับเสียง
ในโหมด Full URL https://example.com/menu/crème brûlée.html จะกลายเป็น https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html เครื่องหมายสแลชและโคลอนจะคงเดิม ลิงก์จึงยังใช้งานได้
อ่านข้อมูลฟอร์มจากบันทึก
บันทึกของเซิร์ฟเวอร์แสดง name=Jane+Doe&city=S%C3%A3o+Paulo ให้ถอดรหัสในโหมด Component โดยเปิดตัวเลือก “แปลง + เป็นช่องว่าง” จะอ่านได้เป็น name=Jane Doe&city=São Paulo
คำถามที่พบบ่อย
encodeURI กับ encodeURIComponent แตกต่างกันอย่างไร
encodeURIComponent จะ escape อักขระที่ใช้แบ่งส่วนต่าง ๆ ของ URL (/ ? # & = + : @ และอื่น ๆ) จึงเหมาะสำหรับข้อมูลเพียงส่วนเดียวของ URL ส่วน encodeURI จะคงอักขระเหล่านั้นไว้ จึงเหมาะสำหรับ URL ที่สมบูรณ์ การใช้ encodeURI กับค่าคิวรีเป็นข้อผิดพลาดที่พบบ่อย: เครื่องหมาย & หรือ = ภายในค่าจะไม่ถูก escape และจะทำให้ query string เสียหาย
ช่องว่างควรใช้ %20 หรือ +
ในพาธของ URL ช่องว่างจะเป็น %20 เสมอ ใน query string อาจพบทั้งสองรูปแบบ: %20 ใช้ได้ในทุกกรณี ส่วน + หมายถึงช่องว่างเฉพาะในข้อมูลที่เข้ารหัสแบบฟอร์ม (application/x-www-form-urlencoded) ซึ่งเป็นรูปแบบที่ฟอร์ม HTML และเฟรมเวิร์กฝั่งเซิร์ฟเวอร์จำนวนมากใช้อ่าน query string หากไม่แน่ใจให้ใช้ %20
ทำไมจึงเกิดข้อผิดพลาดเมื่อถอดรหัส
การถอดรหัสจะล้มเหลวเมื่อเครื่องหมาย % ไม่ได้ตามด้วยเลขฐานสิบหกสองหลัก (เช่น “50% off”) หรือเมื่อไบต์ที่ escape ไว้ไม่ใช่ UTF-8 ที่ถูกต้อง ซึ่งมักหมายความว่าข้อความถูกเข้ารหัสด้วยชุดอักขระรุ่นเก่า เช่น Latin-1 (é เป็น %E9 แทนที่จะเป็น %C3%A9) ข้อความแสดงข้อผิดพลาดจะระบุตำแหน่งของปัญหา
ทำไม %2F จึงไม่เปลี่ยนเป็นเครื่องหมายทับในโหมด Full URL
decodeURI จงใจคง escape ของอักขระสงวน เช่น / ? # & และ = ไว้ เนื่องจากการถอดรหัสอักขระเหล่านี้อาจทำให้การแบ่งส่วนของ URL เปลี่ยนไป ให้ใช้โหมด Component เพื่อถอดรหัส escape ทั้งหมด
อักขระใดบ้างที่ไม่ถูกเข้ารหัส
ทั้งสองโหมดจะคง A–Z, a–z, 0–9 และ - _ . ! ~ * ' ( ) ไว้เหมือนเดิม โหมด Full URL จะคง ; , / ? : @ & = + $ และ # ไว้เพิ่มเติม
ความเป็นส่วนตัว
การเข้ารหัสและถอดรหัสทำงานในเบราว์เซอร์ของคุณทั้งหมดด้วยฟังก์ชัน JavaScript ในตัว ข้อความและ URL ของคุณจะไม่ถูกอัปโหลด จัดเก็บ หรือรวมอยู่ในข้อมูลวิเคราะห์