แปลงฟรี

ตัวเข้ารหัส URL / เครื่องถอดรหัส

เข้ารหัสและถอดรหัส URL และส่วนประกอบ URI ทันทีในเบราว์เซอร์ของคุณ ฟรี เป็นส่วนตัว และไม่จำเป็นต้องอัปโหลด

หรือ

เกี่ยวกับเครื่องมือนี้

การเข้ารหัส URL (การเข้ารหัสเปอร์เซ็นต์อย่างเป็นทางการ ซึ่งกำหนดใน RFC 3986) แปลอักขระที่มีความหมายพิเศษใน URL เช่น ช่องว่าง เครื่องหมายทับ เครื่องหมายแอมเปอร์แซนด์ เครื่องหมายแฮช ให้อยู่ในรูปแบบที่ปลอดภัยโดยใช้เครื่องหมายเปอร์เซ็นต์ตามด้วยเลขฐานสิบหก อักขระช่องว่างกลายเป็น %20 (หรือ + ในบริบทที่เข้ารหัสแบบฟอร์ม) เครื่องหมายและกลายเป็น %26 และอื่นๆ หากไม่มีการเข้ารหัสนี้ อักขระพิเศษจะถูกตีความว่าเป็นไวยากรณ์ของ URL แทนที่จะเป็นข้อมูลตามตัวอักษร ทำให้ URL เสียหาย หรือทำให้เกิดการทำงานที่ไม่ได้ตั้งใจ

มีการเข้ารหัสที่เกี่ยวข้องแต่แตกต่างกันสองรายการ การเข้ารหัสองค์ประกอบ URL มาตรฐานใช้ %-escapes สำหรับทุกสิ่งที่อยู่นอกชุดอักขระที่ไม่ได้สงวนไว้: A-Z, a-z, 0-9, ยัติภังค์, ขีดล่าง, จุด, ตัวหนอน รูปแบบที่เข้ารหัสแบบฟอร์ม (application/x-www-form-urlencoded) ยังถือว่าช่องว่างเป็นเครื่องหมายบวก และใช้กฎที่แตกต่างกันสำหรับอักขระอื่นๆ บางตัว encodeURIComponent ของ JavaScript ใช้การเข้ารหัสองค์ประกอบที่เข้มงวด encodeURI ใช้รูปแบบที่อนุญาตมากกว่าที่จะรักษาอักขระโครงสร้าง URL

เครื่องมือนี้มีทั้งการเข้ารหัสและการถอดรหัส โหมดเข้ารหัสจะล้อมอักขระแต่ละตัวที่ต้องมีการ Escape ในรูปแบบ %HH โหมดถอดรหัสกลับการแปลง ทั้งสองทำงานทั้งหมดในเบราว์เซอร์ของคุณโดยใช้ฟังก์ชัน JavaScript URL ในตัว ดังนั้นจึงไม่มีการส่งข้อมูลไปที่ใดเลย

ทำไมต้องเข้ารหัสหรือถอดรหัส URL

ทุกครั้งที่ข้อมูลรวมอยู่ใน URL — พารามิเตอร์สตริงการสืบค้น, ส่วนของเส้นทางที่มีการป้อนข้อมูลของผู้ใช้, เป้าหมายการเปลี่ยนเส้นทาง — จำเป็นต้องมีการเข้ารหัสที่เหมาะสม การไม่เข้ารหัสจะทำให้เกิด URL ที่เสียหายเมื่อมีอักขระพิเศษปรากฏขึ้น ขอบเขตพารามิเตอร์รั่วไหลไปยังสตริงการสืบค้น (เปลี่ยน &x=1 ให้เป็นพารามิเตอร์แยกต่างหาก) หรือถูกบล็อกโดยเว็บเซิร์ฟเวอร์เนื่องจากคำขอที่มีรูปแบบไม่ถูกต้อง

การถอดรหัสเป็นสิ่งที่ตรงกันข้าม: การแยกข้อมูลต้นฉบับออกจาก URL ที่เข้ารหัส แถบที่อยู่ของเบราว์เซอร์มักแสดง URL ในรูปแบบที่เข้ารหัส การถอดรหัสเผยให้เห็นสิ่งที่ตั้งใจไว้จริง การบันทึก การแก้ไขข้อบกพร่อง และการวิเคราะห์ความปลอดภัยล้วนได้รับประโยชน์จาก URL ที่ถอดรหัสซึ่งแสดงพารามิเตอร์และเส้นทางดั้งเดิม

วิธีใช้งาน

วางสตริง เลือกทิศทาง

  1. เลือกเข้ารหัสหรือถอดรหัส: การเข้ารหัสจะล้อมอักขระที่ไม่ปลอดภัยในรูปแบบ %HH ถอดรหัสย้อนกลับ %HH หนีกลับไปเป็นอักขระตามตัวอักษร
  2. เพิ่มข้อความที่ป้อน: วางสตริงเพื่อเข้ารหัสหรือถอดรหัส สำหรับการเข้ารหัส โดยทั่วไปจะเป็นค่าตามตัวอักษรที่มีการเว้นวรรค อักขระพิเศษ หรือเนื้อหาที่ไม่ใช่ ASCII สำหรับการถอดรหัส นี่คือ URL หรือส่วนประกอบ URL ที่มี Escape %HH
  3. แปลง: เครื่องมือนี้ใช้ encodeURIComponent หรือ decodeURIComponent เอาต์พุตที่เข้ารหัสสามารถฝังใน URL ได้อย่างปลอดภัย เอาต์พุตที่ถอดรหัสแล้วคือค่าตามตัวอักษรดั้งเดิม
  4. คัดลอกหรือดาวน์โหลด: ใช้ผลลัพธ์ทุกที่ที่คุณต้องการ ค่าที่เข้ารหัสจะพอดีกับ URL ค่าที่ถอดรหัสจะเปิดเผยข้อมูลต้นฉบับ

กรณีการใช้งานทั่วไป

รายละเอียดทางเทคนิค

encodeURIComponent เข้ารหัสอักขระทุกตัวนอกชุดที่ไม่ได้สงวนไว้ [A-Za-z0-9-_.~] ช่องว่างกลายเป็น %20 เครื่องหมายบวกกลายเป็น %2B เครื่องหมายเท่ากับกลายเป็น %3D และอื่นๆ อักขระที่อยู่นอก ASCII จะถูกเข้ารหัสครั้งแรกในรูปแบบ UTF-8 จากนั้นแต่ละไบต์จะเป็น %-escape

encodeURI อนุญาตมากกว่าและมีไว้สำหรับ URL แบบเต็มแทนที่จะเป็นส่วนประกอบ มันใช้ไม่ได้หนี /, ?, &, =, # และอื่นๆ อีกสองสามตัว เนื่องจากอักขระเหล่านั้นมีความหมายทางไวยากรณ์ URL สำหรับการฝังข้อมูลผู้ใช้ใน URL encodeURIComponent มักจะเป็นตัวเลือกที่ถูกต้องเสมอไป

decodeURIComponent จะกลับค่า %-escapes เพื่อตรวจสอบว่าการ Escape แต่ละรายการมีรูปแบบที่ถูกต้องและไบต์ผลลัพธ์ที่ได้จะอยู่ในรูปแบบ UTF-8 ที่ถูกต้อง อินพุตที่มีรูปแบบไม่ถูกต้องทำให้เกิดข้อผิดพลาดแทนที่จะสร้างขยะ

แนวทางปฏิบัติที่ดีที่สุด

คำถามที่พบบ่อย

อักขระใดที่ต้องมีการเข้ารหัส URL
อักขระที่สงวนไว้ (&, =, ?, #, /, :, @) และอักขระที่ไม่ปลอดภัย (ช่องว่าง, <, >, {, }, |, ^, ~, [, ], `) จะต้องได้รับการเข้ารหัส อักขระตัวอักษรและตัวเลขและ -_.~ ปลอดภัยและไม่จำเป็นต้องเข้ารหัส
ความแตกต่างระหว่าง encodeURI และ encodeURIComponent คืออะไร?
encodeURI เข้ารหัส URL แบบเต็ม แต่คงอักขระที่สงวนไว้ (://?#) encodeURIComponent เข้ารหัสทุกอย่างยกเว้น -_.!~*'() — ใช้สำหรับค่าพารามิเตอร์การสืบค้น เครื่องมือนี้มีทั้งสองโหมด
ช่องว่างถูกเข้ารหัสใน URL อย่างไร
ช่องว่างสามารถเข้ารหัสเป็น %20 (การเข้ารหัสเปอร์เซ็นต์มาตรฐาน) หรือ + (การเข้ารหัสแบบฟอร์ม) %20 ถูกต้องสำหรับเส้นทาง URL ในขณะที่ + ใช้ในสตริงการสืบค้นจากฟอร์ม HTML เครื่องมือนี้ใช้ %20 เป็นค่าเริ่มต้น
ฉันสามารถเข้ารหัสอักขระ Unicode ได้หรือไม่
ใช่. อักขระ Unicode จะถูกเข้ารหัสเป็น UTF-8 ไบต์ก่อน จากนั้นแต่ละไบต์จะถูกเข้ารหัสเป็นเปอร์เซ็นต์ ตัวอย่างเช่น '日' จะกลายเป็น %E6%97%A5 (3 UTF-8 ไบต์ โดยแต่ละไบต์เข้ารหัสเป็นเปอร์เซ็นต์)
ฉันควรใช้ encodeURI หรือ encodeURIComponent
เกือบทุกครั้งจะเข้ารหัสURIComponent ใช้ encodeURI เฉพาะในกรณีที่คุณมี URL ที่สมบูรณ์และต้องการรักษาโครงสร้างไว้ ซึ่งโดยทั่วไปแล้วจะหายากเนื่องจากคุณสร้าง URL จากส่วนประกอบอยู่แล้ว
ข้อมูลของฉันถูกอัพโหลดไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ การเข้ารหัสและถอดรหัส URL เกิดขึ้นทั้งหมดในเบราว์เซอร์ของคุณ
มันรองรับอีโมจิ Unicode หรือไม่?
ใช่. อิโมจิเป็นลำดับ UTF-8 แบบหลายไบต์ ตัวเข้ารหัสจะสร้างห่วงโซ่ของไบต์ที่ใช้ Escape % ซึ่งตัวถอดรหัสจะประกอบกลับคืนสู่อิโมจิดั้งเดิมได้อย่างถูกต้อง
จะเกิดอะไรขึ้นหากอินพุตของฉันมีสตริงที่ดูเป็น %HH ที่ไม่ได้เข้ารหัสจริง ๆ
การเข้ารหัสจะเปลี่ยน % แต่ละรายการเป็น %25 จากนั้นจึงใช้การ Escape อีกครั้งกับส่วนที่เหลือ การถอดรหัสอินพุตที่เข้มงวดทำให้เกิดข้อผิดพลาดในการหลบหนีที่มีรูปแบบไม่ถูกต้อง สตริงที่ดูคลุมเครืออาจถอดรหัสไม่ถูกต้อง