ข้ามไปยังเนื้อหาหลัก
FreeOnlineTools Go
ไทย
คำอธิบาย

การเข้ารหัส URL คืออะไร? คำอธิบายฉบับสมบูรณ์ของ Percent-encoding

โดย FreeOnlineTools Team · อัปเดตเมื่อ 2026-09-02

ตอบด่วน

URL encoding (percent-encoding) แทนอักขระ unsafe ใน URL ด้วย % ตามด้วยเลข hex สองหลัก เช่น ช่องว่างเป็น %20, & เป็น %26 ทำให้ URL ส่งได้ไม่กำกวาม ใช้ URL Encoder และ Decoder ฟรีของเรา

การแนะนำ

URL encoding (percent-encoding) เป็นกลไกเข้ารหัสอักขระพิเศษใน URL เพื่อส่งผ่านอินเทอร์เน็ตได้ปลอดภัย URL มี ASCII จำกัด —ตัวอักษร ตัวเลข และ reserved บางตัว อักขระอื่น (ช่องว่าง, quote, ไม่ใช่ ASCII) ต้อง encode เป็น % ตามด้วยเลข hex สองหลัก URL encoding กำหนดโดย RFC 3986

ทีละขั้นตอน

  1. ทำความเข้าใจว่าอักขระตัวไหนที่ต้องเข้ารหัส

    อักขระที่ไม่ได้สงวนไว้ (A-Z, a-z, 0-9, -, _, ., ~) ไม่จำเป็นต้องเข้ารหัส อักขระที่สงวนไว้ (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) มีความหมายพิเศษใน URLs และควรเข้ารหัสเมื่อใช้เป็นข้อมูล อักขระอื่นๆ ทั้งหมด (ช่องว่าง เครื่องหมายคำพูด ไม่ใช่ ASCII) จะต้องได้รับการเข้ารหัส

  2. เรียนรู้กลไกการเข้ารหัส

    อักขระแต่ละตัวที่ต้องการการเข้ารหัสจะถูกแปลงเป็นลำดับไบต์ UTF-8 จากนั้นแต่ละไบต์จะแสดงเป็น %XX โดยที่ XX คือค่าฐานสิบหก ช่องว่าง (0x20) → %20 อักขระที่ไม่ใช่ ASCII 'é' (UTF-8: 0xC3 0xA9) → %C3%A9

  3. แยกแยะความแตกต่าง encodeURI กับ encodeURIComponent

    encodeURI() เข้ารหัส URL แบบเต็ม แต่คงอักขระสงวนไว้ (:/?&=) ซึ่งเป็นส่วนหนึ่งของโครงสร้าง URL encodeURIComponent() เข้ารหัสทุกอย่างยกเว้นอักขระที่ไม่ได้สงวนไว้ - ใช้สำหรับค่าพารามิเตอร์การสืบค้นโดยที่อักขระที่สงวนไว้เป็นข้อมูล ไม่ใช่โครงสร้าง

  4. ถอดรหัสที่เข้ารหัสเป็นเปอร์เซ็นต์ URLs

    การถอดรหัสจะกลับการเข้ารหัส: %20 → ช่องว่าง, %C3%A9 → é ใช้ decodeURI() สำหรับ URLs แบบเต็ม และ decodeURIComponent() สำหรับค่าพารามิเตอร์การค้นหา ข้อผิดพลาดในการส่งลำดับการหลีกไม่ถูกต้อง (เช่น %ZZ)

ตัวอย่าง

เข้ารหัสช่องว่าง

ป้อนข้อมูล: hello world

เอาท์พุต: hello%20world

เข้ารหัสข้อความที่ไม่ใช่ ASCII

ป้อนข้อมูล: café

เอาท์พุต: caf%C3%A9

เข้ารหัสค่าพารามิเตอร์การค้นหา

ป้อนข้อมูล: name=John Doe & Co.

เอาท์พุต: name%3DJohn%20Doe%20%26%20Co.

ปัญหาทั่วไป

  • เข้ารหัส URL ทั้งหมด เมื่อเฉพาะค่าที่ต้องการเข้ารหัส —เข้ารหัสค่าพารามิเตอร์การค้นหา ไม่ใช่โครงสร้าง URL (://?&=)
  • การเข้ารหัสสองครั้ง —หาก URL ถูกเข้ารหัสแล้ว การเข้ารหัสอีกครั้งจะสร้าง %2520 แทนที่จะเป็น %20 ถอดรหัสก่อนหากไม่แน่ใจว่าเข้ารหัสแล้วหรือไม่
  • การใช้ encodeURI กับ encodeURIComponent ไม่ถูกต้อง —encodeURI จะรักษาอักขระโครงสร้าง URL encodeURIComponent เข้ารหัสพวกมัน ใช้อย่างหลังสำหรับค่าพารามิเตอร์การค้นหา
  • ลำดับหลีกไม่ถูกต้อง —%ZZ หรือ % เดียวที่ตอนท้ายนั้นไม่ถูกต้อง และจะส่งข้อผิดพลาดเมื่อถอดรหัส

เคล็ดลับ

  • เข้ารหัสค่าพารามิเตอร์การค้นหาที่อาจมีการเว้นวรรค อักขระพิเศษ หรืออินพุตของผู้ใช้เสมอเพื่อป้องกันการแทรก URL
  • ใช้ encodeURIComponent() สำหรับค่าพารามิเตอร์การค้นหา และใช้ encodeURI() สำหรับ URLs แบบเต็มที่ต้องการเข้ารหัสอักขระที่ไม่ปลอดภัย
  • การเข้ารหัส URL ไม่ใช่การเข้ารหัส ใครๆ ก็สามารถถอดรหัสได้ อย่าใช้มันเพื่อซ่อนข้อมูลที่ละเอียดอ่อน
  • ใช้ URL ตัวเข้ารหัสและตัวถอดรหัสของเราเพื่อการแปลงแบบส่วนตัวทันทีในเบราว์เซอร์ของคุณ

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

คำแนะนำที่เกี่ยวข้อง

อ้างอิง