RevealTheme logo

ตัวเข้ารหัสและถอดรหัส URL

แปลงข้อความเป็นการเข้ารหัสที่ปลอดภัยสำหรับ URL (การเข้ารหัสแบบเปอร์เซ็นต์) และในทางกลับกัน มีประโยชน์สำหรับ query string การเปลี่ยนเส้นทาง และโฟลว์ OAuth

การเข้ารหัส URL คืออะไรและเมื่อใดที่คุณต้องใช้?

การเข้ารหัส URL (หรือที่เรียกว่า 'การเข้ารหัสแบบเปอร์เซ็นต์' ซึ่งกำหนดไว้ใน RFC 3986) คือกระบวนการแปลงอักขระที่มีความหมายพิเศษใน URL หรืออักขระที่ไม่ปลอดภัยใน URL โดยตรง ให้เป็นซีเควนซ์หลีก (escape) เลขฐานสิบหก '%XX' ข้อกำหนด URL สงวนอักขระบางตัวที่มีความหมายเชิงโครงสร้างไว้: '?' เริ่มต้น query string, '#' เริ่มต้นส่วน fragment, '&' คั่นพารามิเตอร์ของ query, '/' คั่นเซ็กเมนต์ของ path เป็นต้น หากอินพุตของผู้ใช้มีอักขระเหล่านั้นและคุณฝังมันลงใน URL ตามที่เป็นอยู่ ตัวแยกวิเคราะห์ (parser) จะตีความผิด การเข้ารหัส URL หลีกเลี่ยงปัญหานี้โดยแทนที่อักขระที่สงวนไว้หรือไม่ปลอดภัยแต่ละตัวด้วยการแสดงเลขฐานสิบหกแบบไบต์ที่นำหน้าด้วย '%' ช่องว่างจะกลายเป็น %20, '&' กลายเป็น %26, '=' กลายเป็น %3D อักขระที่ไม่ใช่ ASCII (ซีริลลิก จีน อีโมจิ) จะถูกแปลงเป็นซีเควนซ์ UTF-8 แบบหลายไบต์ โดยแต่ละไบต์เข้ารหัสแบบเปอร์เซ็นต์ เบราว์เซอร์จัดการสิ่งนี้โดยอัตโนมัติเมื่อคุณคลิกลิงก์ แต่เมื่อใดก็ตามที่คุณสร้าง URL ผ่านโค้ด ไม่ว่าจะเป็นการสร้าง query การค้นหา ปลายทางการเปลี่ยนเส้นทาง callback ของ OAuth หรือลายเซ็นของ webhook คุณต้องเข้ารหัสค่าที่ผู้ใช้ป้อนมาก่อน เครื่องมือนี้ใช้ฟังก์ชัน encodeURIComponent / decodeURIComponent เดียวกันกับที่โค้ด JavaScript ของคุณจะใช้ ดังนั้นพฤติกรรมจึงตรงกับโปรดักชันอย่างแม่นยำ

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

  • เข้ารหัสคำค้นหาของผู้ใช้ก่อนต่อท้าย URL การค้นหา (?q=user+input)

  • ส่งพารามิเตอร์ OAuth redirect_uri ไปยังเซิร์ฟเวอร์การให้สิทธิ์อย่างปลอดภัย

  • สร้าง URL ของ webhook ที่มี payload JSON ที่เข้ารหัสไว้ใน query string

  • เข้ารหัส URL แบบ 'returnTo' เพื่อให้คงอยู่เมื่อถูกส่งผ่าน URL อื่น ๆ

  • ถอดรหัสค่าที่เข้ารหัสซึ่งคุณเห็นในแถบที่อยู่ของเบราว์เซอร์หลังการส่งฟอร์ม

  • ทดสอบว่า URL ที่ผิดรูปแบบถูกแยกวิเคราะห์อย่างไร — เข้ารหัสอักขระพิเศษแล้วดูว่าเกิดอะไรขึ้น

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

เมื่อใดที่ฉันควรเข้ารหัส URL?
เข้ารหัสค่าที่ผู้ใช้ป้อนมาเสมอก่อนนำไปใส่ใน URL: พารามิเตอร์ของ query, เซ็กเมนต์ของ path หรือ fragment การไม่เข้ารหัสเป็นหนึ่งในต้นเหตุที่พบบ่อยที่สุดของบั๊กที่ตรวจจับยาก: ค่า 'แมว & สุนัข' จะทำให้ query string เสียจนกว่าจะเข้ารหัสเป็น 'แมว%20%26%20สุนัข'
ความแตกต่างระหว่าง encodeURI และ encodeURIComponent คืออะไร?
encodeURI ใช้สำหรับ URL แบบสมบูรณ์: มันปล่อยอักขระเชิงโครงสร้างอย่าง '/', '?', '&', '=' ไว้ตามเดิมเพราะอักขระเหล่านี้มีความหมายใน URL ส่วน encodeURIComponent ใช้สำหรับส่วนต่างๆ ของ URL (ค่าของ query, เซ็กเมนต์ของ path): มันเข้ารหัสทุกอย่างที่ไม่ใช่ตัวอักษรและตัวเลข ใช้ encodeURIComponent กับค่าของ query แต่ละตัว อย่าใช้ encodeURI กับค่าของ query ที่ผู้ใช้ป้อนมาเด็ดขาด (มันจะไม่หลีก '&' และจะทำให้ query string ของคุณเสีย)
Base64 ที่ปลอดภัยสำหรับ URL เทียบกับการเข้ารหัส URL คืออะไร?
เป็นแนวคิดที่แตกต่างกัน การเข้ารหัส URL (เครื่องมือนี้) แทนที่อักขระพิเศษทีละตัว ส่วน Base64 ที่ปลอดภัยสำหรับ URL เป็นรูปแบบหนึ่งของ Base64 ที่ใช้ '-' และ '_' แทน '+' และ '/' เพื่อให้ผลลัพธ์ปลอดภัยสำหรับ URL อยู่แล้วโดยไม่ต้องเข้ารหัสเพิ่มเติม
ทำไมบางครั้ง '+' จึงถูกถอดรหัสเป็นช่องว่าง?
ใน application/x-www-form-urlencoded (การส่งฟอร์ม) '+' เป็นตัวย่อของช่องว่าง ตัวถอดรหัสส่วนใหญ่จะรักษาสิ่งนี้ไว้ ในการแยกวิเคราะห์ URI สมัยใหม่ '%20' คือการเข้ารหัสช่องว่างที่ถูกต้อง decodeURIComponent ปฏิบัติต่อ '+' เป็น '+' ตามตัวอักษร ใช้ decodeURI หรือตัวถอดรหัสฟอร์มเพื่อแปลง '+' เป็นช่องว่าง
อักขระที่ไม่ใช่ ASCII เข้ารหัสอย่างไร?
ก่อนอื่นจะถูกแปลงเป็นไบต์ UTF-8 จากนั้นแต่ละไบต์จะถูกเข้ารหัสแบบเปอร์เซ็นต์ ดังนั้น 'café' จึงกลายเป็น 'caf%C3%A9': 'é' คือสองไบต์ UTF-8 (0xC3 0xA9) เครื่องมือนี้จัดการ UTF-8 ได้อย่างถูกต้อง เครื่องมือเก่าบางตัวเข้ารหัสโดยใช้ Latin-1 ซึ่งให้ผลลัพธ์ที่แตกต่างออกไป
การเข้ารหัส URL เหมือนกับการเข้ารหัสเอนทิตี HTML หรือไม่?
ไม่ การเข้ารหัส URL (%XX) หลีกอักขระสำหรับ URL ส่วนการเข้ารหัสเอนทิตี HTML (&, <) หลีกอักขระสำหรับมาร์กอัป HTML บริบทแตกต่างกัน การเข้ารหัสแบบหนึ่งในบริบทของอีกแบบหนึ่งเป็นข้อผิดพลาด XSS ที่พบบ่อย

เครื่องมือที่เกี่ยวข้อง

ตัวถอดรหัส JWT

ถอดรหัส JSON Web Tokens (JWT) ได้ทันที ทำงานในเบราว์เซอร์ของคุณ โทเค็นจะไม่ออกจากอุปกรณ์ของคุณ จึงปลอดภัยที่จะใช้กับซีเคร็ตในโปรดักชัน

เครื่องมือจัดรูปแบบและตรวจสอบ JSON

จัดรูปแบบ ตรวจสอบ และย่อขนาด JSON ออนไลน์ ทำงานทั้งหมดในเบราว์เซอร์ของคุณ ข้อมูลของคุณจะไม่ออกจากอุปกรณ์ของคุณเลย

เครื่องมือจัดรูปแบบ XML

จัดรูปแบบและทำให้เอกสาร XML อ่านง่ายขึ้น มีประโยชน์สำหรับ SOAP, sitemap, feed RSS และไฟล์การกำหนดค่า

ตัวเข้ารหัสและถอดรหัส Base64

เข้ารหัสสตริงเป็น Base64 หรือถอดรหัส Base64 เป็นข้อความ เคารพความเป็นส่วนตัวของคุณ: ทำงานในเบราว์เซอร์ของคุณ

เครื่องมือเข้ารหัสและถอดรหัสเอนทิตี HTML

แปลงอักขระพิเศษเป็นเอนทิตี HTML (&, < เป็นต้น) และในทางกลับกัน มีประโยชน์สำหรับการฝังข้อความลงใน HTML อย่างปลอดภัย

ตัวย่อขนาด CSS

ลบคอมเมนต์ ช่องว่าง และอักขระที่ไม่จำเป็นออกจาก CSS เพื่อลดขนาดไฟล์

สมัครรับข่าวสารอัปเดต

เราไม่ขายอีเมลของคุณ เราไม่ส่งสแปม

© 2026 RevealTheme. All rights reserved.