nicetool.dev logo

URL เข้ารหัส

แปลงสตริงเพื่อใช้งานใน URL อย่างปลอดภัย

สตริงนำเข้า
ผลลัพธ์

URL Encoding คืออะไร?

URL Encoding คือวิธีการแปลงข้อมูลให้อยู่ในรูปแบบที่ปลอดภัยสำหรับ URI

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

URL รองรับเฉพาะ ASCII ตัวอักษรพิเศษจึงต้องเข้ารหัส

  • / ใช้แบ่งส่วนของเส้นทาง
  • ? แยก path และ query
  • # ระบุ fragment ของ URL
  • & แยกพารามิเตอร์
  • ช่องว่างถูกแปลงเป็น '+' หรือ '%20'

การทำงาน

แทนที่อักขระด้วย '%' และรหัสเลขฐานสิบหก

'hello world' → 'hello%20world'

วิธีใช้ ตัวเข้ารหัส / ถอดรหัส URL

  1. 1

    เลือก Encode เพื่อแปลงข้อความให้ใช้ใน URL ได้อย่างปลอดภัย หรือ Decode เพื่อแปลงข้อความที่เข้ารหัส เช่น %20 กลับเป็นตัวอักษรที่อ่านได้

  2. 2

    วาง URL ทั้งหมด ค่าพารามิเตอร์ หรือข้อความใดก็ได้ลงในช่องกรอก

  3. 3

    ผลลัพธ์แสดงทันที ช่องว่างกลายเป็น %20 ตัวอักษรที่ไม่ใช่ ASCII เช่น ภาษาไทย จะกลายเป็นไบต์ UTF-8 (เช่น "ก" เป็น %E0%B8%81) และอักขระพิเศษอย่าง & และ = จะถูก escape

  4. 4

    คัดลอกผลลัพธ์ไปใช้ในลิงก์ request ของ API การ redirect หรือพารามิเตอร์ติดตามผล สลับโหมดเพื่อตรวจสอบทิศทางกลับ

ตัวอย่างการใช้งานจริง

ค่าใน query string

การค้นหาคำว่า "coffee & tea" ต้องส่งเป็น q=coffee%20%26%20tea ไม่เช่นนั้น & จะเริ่มพารามิเตอร์ใหม่และเซิร์ฟเวอร์ได้รับแค่ "coffee "

อ่านลิงก์ติดตามผล

URL โฆษณาและ redirect มักมี URL ที่ถูกเข้ารหัสซ่อนอยู่ข้างใน การถอดรหัสช่วยให้เห็นปลายทางจริงก่อนคลิก

URL ภาษาไทย

พาธภาษาไทยถูกเก็บในรูปแบบเข้ารหัสเปอร์เซ็นต์ การถอดรหัส https://example.com/%E0%B8%81 จะได้พาธที่อ่านได้คือ "/ก"

OAuth และ redirect URI

พารามิเตอร์ redirect_uri ต้องเข้ารหัสทั้งหมด การเข้ารหัสที่นี่ช่วยหลีกเลี่ยงข้อผิดพลาด "redirect_uri mismatch" ที่เกิดจาก ? หรือ / ที่หลุดเข้าไป

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

URL encoding คืออะไร?+

หรือเรียกว่า percent-encoding (RFC 3986) คือการแทนอักขระที่ใช้ใน URL ไม่ได้หรือมีความหมายพิเศษ ด้วย % ตามด้วยเลขฐานสิบหกสองหลักต่อหนึ่งไบต์

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

%20 ใช้ได้ทุกตำแหน่งใน URL ส่วน + หมายถึงช่องว่างเฉพาะในข้อมูลฟอร์ม (application/x-www-form-urlencoded) ดังนั้น %20 ปลอดภัยกว่า

encodeURI กับ encodeURIComponent ต่างกันอย่างไร?+

encodeURI เก็บอักขระที่เป็นโครงสร้างของ URL เช่น / ? & และ = ไว้ เหมาะกับ URL ทั้งหมด ส่วน encodeURIComponent จะ escape อักขระเหล่านั้นด้วย เหมาะกับค่าพารามิเตอร์ตัวเดียว

ทำไมถอดรหัสไม่สำเร็จ?+

ข้อมูลมี % ที่ไม่ได้ตามด้วยเลขฐานสิบหกสองหลักที่ถูกต้อง หรือมีลำดับไบต์ที่ไม่ใช่ UTF-8 ที่ถูกต้อง ให้ตรวจว่าข้อความถูกตัดหรือถูกเข้ารหัสซ้ำสองครั้งหรือไม่