URL Encoder/Decoder (percent-encoding)
ใช้เพื่อฝังข้อความอย่างปลอดภัยใน URLs พารามิเตอร์การค้นหา หรือข้อมูลฟอร์ม จัดการช่องว่าง อักขระพิเศษ และ Unicode (รวม CJK และ emoji) อย่างถูกต้อง
วิธีการทำงาน
URL encoding คืออะไร
URLs ถูกจำกัดในชุดอักขระ ASCII ขนาดเล็ก เพื่อรวมสิ่งอื่น — ช่องว่าง การเน้น อักขระจีน emoji สัญลักษณ์พิเศษ — คุณแทนที่ byte ที่ไม่ปลอดภัยแต่ละ byte ด้วย %XX โดย XX คือค่า byte เลขฐานสิบหก ช่องว่างกลายเป็น %20 เครื่องหมายทับ %2F อักษรไทย 'ก' กลายเป็น %E0%B8%81 (byte UTF-8 ของมันถูก percent-encoded)
เครื่องคำนวณนี้ใช้ encodeURIComponent และ decodeURIComponent ที่มีในเบราว์เซอร์ มันเข้ารหัสทุกอย่างที่ไม่ใช่อักขระที่ไม่สงวน (ตัวอักษร ตัวเลข -._~) ซึ่งเป็นพฤติกรรมที่ถูกต้องสำหรับพารามิเตอร์การค้นหาและข้อมูลฟอร์ม
encodeURI เทียบกับ encodeURIComponent
JavaScript มีตัวเข้ารหัสสองตัว encodeURI ทิ้งอักขระโครงสร้าง URL (/ ? & # = + ฯลฯ) ไว้ตามลำพัง — ใช้บน URL เต็ม encodeURIComponent หลีกเลี่ยงพวกนั้นทั้งหมด — ใช้กับค่าภายในพารามิเตอร์การค้นหา
เครื่องมือนี้ใช้ encodeURIComponent การเลือกที่ปลอดภัยกว่าสำหรับการฝังข้อความตามอำเภอใจใน URL หากคุณมี URL เต็มพร้อมโครงสร้างที่คุณต้องการรักษา เข้ารหัสเฉพาะส่วนที่ต้องการ
ข้อผิดพลาดทั่วไป
เครื่องหมายบวกใน URLs เซิร์ฟเวอร์บางตัวปฏิบัติต่อ '+' เป็นช่องว่าง (มรดกจากการเข้ารหัสฟอร์ม) encodeURIComponent ทิ้ง '+' ไว้ตามลำพัง แต่เซิร์ฟเวอร์อาจถอดรหัสเป็นช่องว่าง เพื่อความปลอดภัย แทนที่ '+' ด้วย %2B หากคุณกำลังส่งเป็นข้อมูล
การเข้ารหัสซ้อน การเข้ารหัสสตริงที่เข้ารหัสแล้วเพิ่มอีกชั้น (% กลายเป็น %25 ดังนั้น '%20' กลายเป็น '%2520') ตรวจสอบเสมอว่าอินพุตเข้ารหัสแล้วก่อนเรียกใช้การเข้ารหัสอีกครั้ง
ความยาวเพิ่มขึ้น อักขระ UTF-8 หลาย byte ขยายเป็น 3-4 percent-codes แต่ละตัว สตริงไทย 100 อักขระสามารถกลายเป็น URL 300+ อักขระได้อย่างง่ายดาย
คำถามที่พบบ่อย
›ทำไม '%20' ของฉันไม่ถอดรหัสเป็นช่องว่าง?
ควร — แต่หากคุณมี '+' ใน URL อาจแทนช่องว่างด้วย (การเข้ารหัสฟอร์มดั้งเดิม) แทนที่ + ด้วยช่องว่างก่อนหากจำเป็น
›นี่จัดการ emoji หรือไม่?
ใช่ Emoji ถูกเข้ารหัสเป็นลำดับ byte UTF-8 (โดยทั่วไป 4 byte / 4 percent-codes ต่อ emoji)
›ความแตกต่างระหว่างการเข้ารหัส URL และการเข้ารหัส HTML คืออะไร?
การเข้ารหัส URL ใช้สัญกรณ์ % สำหรับบริบท URL การเข้ารหัส HTML ใช้ < > ฯลฯ สำหรับ HTML บริบทต่างกัน กฎต่างกัน
›เมื่อใดควรเข้ารหัสและเมื่อใดไม่?
เข้ารหัสค่าใดๆ ที่เข้าไปในพารามิเตอร์การค้นหา URL ส่วนของ path ที่มีอินพุตผู้ใช้ หรือข้อมูลฟอร์ม อย่าเข้ารหัส URL ที่สร้างแล้ว — นั่นเข้ารหัสซ้อน
›ทำไม '%' ในข้อความที่ถอดรหัสของฉันทำให้เกิดข้อผิดพลาด?
'%' เปลือยตามด้วยสิ่งที่ไม่ใช่ hex ที่ถูกต้องเป็น percent-encoding ที่ไม่ถูกต้อง เข้ารหัส '%' เป็น '%25' ก่อนรวมใน URL
›เบราว์เซอร์ทำสิ่งนี้อัตโนมัติหรือไม่?
ใช่ — เมื่อสร้าง URLs ผ่าน URL หรือ URLSearchParams APIs เครื่องมือนี้เปิดเผยตรรกะเดียวกันสำหรับการใช้งานเฉพาะกิจ
›อักขระใด 'ปลอดภัย' และไม่ต้องการการเข้ารหัส?
ตัวอักษร (A-Z, a-z) ตัวเลข (0-9) และเหล่านี้: - . _ ~ ทุกอย่างอื่นถูก percent-encoded โดย encodeURIComponent
›ข้อมูลออกจากเบราว์เซอร์หรือไม่?
ไม่ การเข้ารหัสและการถอดรหัสทั้งคู่ทำงานในเครื่อง
เครื่องมือที่เกี่ยวข้อง
อัปเดตล่าสุด: