แปลงระหว่างข้อความธรรมดา URL Encoded และ Component Encoded ได้อย่างอิสระ
เพียง 3 ขั้นตอนง่าย ๆ:
URL Codec มีประโยชน์ในสถานการณ์ต่อไปนี้:
เข้ารหัส/ถอดรหัสพารามิเตอร์ที่ส่งมาจากฟอร์ม HTML (application/x-www-form-urlencoded) เหมาะสำหรับตรวจสอบหรือดีบัก POST/GET และจะแปลงช่องว่างให้เป็นเครื่องหมาย +
แปลงคำค้นหรือเงื่อนไขการกรองให้เป็นพารามิเตอร์ URL ที่ปลอดภัย เช่น “Tokyo Tower” → “Tokyo%20Tower”
เข้ารหัสพาธและค่า query ใน Endpoint ให้อยู่ในรูปแบบที่สอดคล้องกับ RFC 3986 โดย Component Encoding จะเปลี่ยนช่องว่างเป็น “%20” และคงเครื่องหมาย / : ไว้
ถอดรหัส URL ที่ปรากฏในแอดเดรสบาร์หรือไฟล์ log เพื่อตรวจสอบสตริงต้นฉบับ ช่วยหาสาเหตุของข้อผิดพลาดได้ง่าย
เข้ารหัส/ถอดรหัส redirect_uri, state และพารามิเตอร์อื่น ๆ ของ OAuth 2.0 เพื่อยืนยันค่าที่ถูกส่งใน flow การยืนยันตัวตน
URL Encoding หรือ percent-encoding คือการแทนตัวอักษรที่ไม่สามารถใช้ใน URL ด้วยสัญลักษณ์ “%” ตามด้วยเลขฐานสิบหก ใช้เมื่อจำเป็นต้องส่งอักษรหลายไบต์ เช่น ภาษาไทย จีน ญี่ปุ่น หรือสัญลักษณ์พิเศษ
ส่งข้อมูลผ่าน HTML ฟอร์มให้ใช้ Form Encoding ส่วน REST API พาธหรือ query ควรใช้ Component Encoding หากไม่แน่ใจ การใช้ Component Encoding มักปลอดภัยกว่า
ใช่ เป็นชื่อเรียกคนละแบบของกระบวนการเดียวกันที่ใช้ “%” แทนไบต์
Form Encoding แปลงช่องว่างเป็น “+” ส่วน Component จะเป็น “%20” และมีชุดตัวอักษรที่ต้องเข้ารหัสต่างกันเล็กน้อย
ตัวอักษรถูกแปลงเป็นไบต์ UTF-8 ก่อน จากนั้นเขียนเป็น “%XX” เช่น “ก” → “%E0%B8%81”
นอกจากตัวอักษร a-z, A-Z, ตัวเลข, ขีดกลาง, ขีดล่าง, จุด และ ~ แล้ว ตัวอื่น ๆ เช่น ช่องว่าง, /, :, อักขระที่ไม่ใช่ ASCII และสัญลักษณ์พิเศษต้องเข้ารหัส
มักเกิดจากฟอร์แมตไม่ถูกต้อง (ไม่มีเลขฐานสิบหกสองหลักหลัง “%”) หรือสตริงเดียวกันถูกเข้ารหัสซ้ำ ต้องถอดรหัสหลายครั้ง
ไม่ใช่ เป็นเพียงการแปลงรูปแบบ ทุกคนสามารถถอดรหัสกลับได้ จึงไม่ควรใช้เพื่อปกป้องข้อมูลลับ
ส่วนใหญ่มีฟังก์ชันในตัว เช่น JavaScript encodeURIComponent(), Python urllib.parse.quote(), PHP rawurlencode(), Java URLEncoder.encode() เป็นต้น
คือการนำสตริงที่ถูกเข้ารหัสแล้วมาเข้ารหัสซ้ำ เช่น “%20” → “%2520” ซึ่งมักทำให้เกิดปัญหา ควรหลีกเลี่ยง
Encode and decode Base64
Encode and decode HTML special characters
Encode and decode URLs
Decode encoded URLs
Encode URLs to safe format