DevToolPal
ไทย

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

เข้ารหัสข้อความแบบ percent-encoding เพื่อใช้ใน URL และ query string ได้อย่างปลอดภัย หรือถอดรหัสลำดับ %XX กลับเป็นข้อความที่อ่านได้

ทำงานในเครื่อง ไม่มีการอัปโหลด

ตัวเลือก

โหมด
เข้ารหัส

อินพุต

0 ตัวอักษร · 0 B

เอาต์พุต

0 ตัวอักษร · 0 B

เครื่องมือนี้ทำอะไร

การเข้ารหัส URL หรือที่เรียกว่า percent-encoding คือการแทนที่อักขระที่ไม่อนุญาตหรือมีความหมายพิเศษใน URL ด้วย % ตามด้วยเลขฐานสิบหกสองหลัก ช่องว่างกลายเป็น %20 เครื่องหมาย & กลายเป็น %26 และข้อความที่ไม่ใช่ ASCII เช่น 中文 จะถูกแปลงเป็นไบต์ UTF-8 ก่อน แล้วแต่ละไบต์จึงถูกเขียนเป็น %XX

เครื่องมือนี้เข้ารหัสข้อความเพื่อให้ใส่ใน query string, path segment หรือคำขอ API ได้อย่างปลอดภัย และถอดรหัสสตริงที่เข้ารหัสแบบ percent ซึ่งคุณคัดลอกมาจาก log แถบที่อยู่ของเบราว์เซอร์ หรือ HTTP trace กลับเป็นข้อความที่อ่านได้

วิธีใช้งาน

  1. วางข้อความหรือ URL ลงในช่อง อินพุต หรือคลิก ตัวอย่าง
  2. เลือก เข้ารหัส หรือ ถอดรหัส
  3. ขณะเข้ารหัส เลือก Component เพื่อเข้ารหัสค่าเดียว (เช่น คำค้นหา) หรือ URL เต็ม เพื่อคง :, /, ?, & และ = ไว้
  4. เปิด ช่องว่างเป็น + สำหรับข้อมูลฟอร์ม HTML และ แยกทีละบรรทัด เพื่อประมวลผลรายการค่าหลายค่าในครั้งเดียว
  5. คัดลอกหรือดาวน์โหลดผลลัพธ์ หากถอดรหัสไม่สำเร็จ ข้อความแจ้งข้อผิดพลาดจะบอกตำแหน่งของ escape sequence ที่เสีย

ตัวอย่าง

การเข้ารหัสคำค้นหา hello world & more แบบ component จะได้:

hello%20world%20%26%20more

การถอดรหัส q=%E4%BD%A0%E5%A5%BD จะได้ q=你好

ควรใช้แบบไหนเมื่อไร

  • สร้าง query string ด้วยมือ: เข้ารหัสแต่ละ ค่า แบบ component แล้วเชื่อมด้วย & และ =
  • ทำความสะอาดลิงก์เต็มที่มีช่องว่างหรืออักษรจีน: ใช้ URL เต็ม เพื่อคงโครงสร้างของลิงก์ไว้
  • อ่าน log ของเซิร์ฟเวอร์: ถอดรหัสโดยเปิด ช่องว่างเป็น + เพราะเซิร์ฟเวอร์จำนวนมากบันทึกข้อมูลฟอร์มในรูปแบบนั้น

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

› "Component" กับ "URL เต็ม" ต่างกันอย่างไร?

Component เข้ารหัสอักขระสงวนทุกตัว รวมถึง / ? & = และ # ผลลัพธ์จึงปลอดภัยเมื่ออยู่ภายใน query parameter หรือ path segment เดียว ตรงกับ encodeURIComponent ของ JavaScript ส่วน URL เต็ม จะคงอักขระเหล่านั้นไว้เพื่อให้ที่อยู่ยังใช้เป็นลิงก์ได้ ตรงกับ encodeURI

› ช่องว่างควรเป็น %20 หรือ +?

ใช้ %20 สำหรับ path และ API ส่วนใหญ่ ใช้ + เฉพาะกับข้อมูลฟอร์ม HTML (application/x-www-form-urlencoded) ซึ่งเป็นสิ่งที่เบราว์เซอร์ส่งเมื่อกดส่งฟอร์ม เปิด "ช่องว่างเป็น +" สำหรับกรณีนี้

› ทำไมจึงได้ "not valid UTF-8" ขณะถอดรหัส?

ไบต์ %XX ไม่ได้ประกอบกันเป็นอักขระ UTF-8 ที่สมบูรณ์ ส่วนใหญ่เป็นเพราะข้อความถูกตัดกลางอักขระหลายไบต์ หรือถูกเข้ารหัสด้วยชุดอักขระแบบเก่า เช่น GBK หรือ Latin-1

› ข้อมูลของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?

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