URL Encoder

URL Encoder / Decoder

เข้ารหัสข้อความใด ๆ ให้เป็นสตริง URL-safe แบบ percent-encoded หรือถอดรหัส URL ที่ถูกเข้ารหัสกลับเป็นข้อความปกติ พรีวิวสด ปลอดภัย UTF-8 และทำงานในเบราว์เซอร์ของคุณทั้งหมด

Component (encodeURIComponent) escape ทุกอย่างที่ไม่ใช่อักขระ unreserved — ปลอดภัยที่สุดสำหรับค่า query-string, ส่วนของ path หรือฟิลด์เดี่ยวใด ๆ URI (encodeURI) คงอักขระโครงสร้าง URL (:/?#=&) ไว้ — ใช้กับ URL ทั้งอัน Form (application/x-www-form-urlencoded) คือ Component บวกกับการเปลี่ยนช่องว่างเป็น '+' — เป็นรูปแบบที่ HTML form ใช้

RFC 3986 กำหนดชุดอักขระ "unreserved" ที่ไม่ต้องเข้ารหัส: A-Z a-z 0-9 - _. ~ นอกเหนือจากนี้จะถูก percent-encoded encodeURIComponent ยังเข้ารหัส :/?#&= เพิ่มเติมที่ encodeURI ปล่อยไว้ ความต่างนี้สำคัญเมื่อคุณกำลังเข้ารหัสค่า query เทียบกับ URL ทั้งอัน

ข้อความปกติ

0 ตัวอักษร

ผลลัพธ์ที่เข้ารหัส

0 ตัวอักษร

ทำไมต้อง iKit URL Encoder

เร็ว แม่นยำ ทำงานในเบราว์เซอร์เท่านั้น — ออกแบบมาเพื่อนักพัฒนา นักเขียนคอนเทนต์ และทุกคนที่ต้องดีบัก URL

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

เลือก Component, Full URI หรือ Form ตามสิ่งที่คุณต้องการเข้ารหัส — ค่า query-string, URL ทั้งอัน หรือ payload ของ HTML form

ออกแบบโดยคำนึงถึงความเป็นส่วนตัว

การเข้ารหัสและถอดรหัสทุกครั้งเกิดขึ้นในเบราว์เซอร์ของคุณด้วย JavaScript ดั้งเดิม ข้อความและ URL ของคุณไม่เคยออกจากเครื่อง

พรีวิวสด

ผลลัพธ์อัปเดตทุกการกดแป้น — ไม่ต้องคลิกปุ่ม "Encode" ไม่ต้องส่งไป-กลับเซิร์ฟเวอร์

ปลอดภัย UTF-8

อิโมจิ อักขระ CJK อักษรละตินที่มีเครื่องหมาย และอักษรซีริลลิก ผ่าน encodeURIComponent ไป-กลับได้อย่างถูกต้อง

จัดการ + แบบ Form

เมื่อถอดรหัส สามารถเลือกให้ถือว่า '+' เป็นช่องว่าง — ตามแบบที่ HTML form ใช้ภายใต้ application/x-www-form-urlencoded

ประมวลผลไฟล์เป็นชุด

วางไฟล์.txt,.csv หรือ.json เพื่อเข้ารหัสหรือถอดรหัสในขั้นตอนเดียว ผลลัพธ์ดาวน์โหลดเป็นไฟล์.txt ที่สะอาด

URL encoding ทำงานอย่างไรจริง ๆ

API ดั้งเดิมของเบราว์เซอร์สามตัว สามโหมด ทำงานทั้งหมดในหน้าที่คุณกำลังอ่านอยู่

  1. 1

    คุณพิมพ์ลงในตัวแก้ไข

    ในทุกการกดแป้น สตริงอินพุตจะถูกส่งไปยังฟังก์ชัน JavaScript เล็ก ๆ ไม่มี debounce ไม่มีการเรียก API ไม่มี fetch — ฟังก์ชันทำงานแบบ synchronous ในแท็บเบราว์เซอร์ของคุณ

  2. 2

    เลือกโหมด

    Component เรียก encodeURIComponent — escape ทุกอย่างที่ไม่ใช่ A-Z a-z 0-9 - _. ~ URI เรียก encodeURI — คงอักขระ :/?#=& ไว้เพื่อให้ URL เต็มยังใช้งานได้ Form ใช้ encodeURIComponent และแทนที่ช่องว่างด้วย + ตาม application/x-www-form-urlencoded

  3. 3

    UTF-8 เกิดขึ้นเองโดยอัตโนมัติ

    ทั้ง encodeURIComponent และ encodeURI จะแปลงสตริงเป็นไบต์ UTF-8 ภายในก่อนทำ percent-encoding กับแต่ละไบต์ที่ไม่ปลอดภัย นั่นหมายความว่า %E4%B8%AD สำหรับอักษรจีน 中 — ตรงตามที่ RFC 3986 กำหนดทุกประการ

  4. 4

    ผลลัพธ์ปรากฏแบบสด

    ผลลัพธ์ถูกตั้งเป็นค่าของช่องเอาต์พุตแบบอ่านอย่างเดียว คลิก Copy เพื่อใส่ลงคลิปบอร์ดผ่าน navigator.clipboard.writeText หรือ Download เพื่อบันทึกเป็น .txt ผ่าน Blob URL — ทั้งคู่ยังคงอยู่ในเบราว์เซอร์ของคุณ

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

สถานการณ์จริงที่การเลือกโหมดเข้ารหัสที่ถูกต้องช่วยป้องกันบั๊ก

สร้างค่าของ query-string

อินพุตของผู้ใช้ใด ๆ ที่คุณใส่ลงใน ?q=... ต้องเข้ารหัสด้วยโหมด Component โหมด URI จะปล่อย = และ & ไว้ดิบ ๆ ทำให้ URL พังเมื่อค่ามีอักขระเหล่านี้

แชร์ URL ยาวในแชท

แอปแชทและไฟล์ PDF บางตัวทำให้ลิงก์เสียเมื่อมีช่องว่างหรืออักขระที่ไม่ใช่ ASCII รัน URL ผ่านโหมด URI เพื่อให้คัดลอก-วางได้ปลอดภัยทุกที่

ดีบัก backend ที่คืน 400

เมื่อ API ของคุณปฏิเสธคำขอ ให้วาง URL ลงในโหมด Decode เพื่อดูว่าเซิร์ฟเวอร์เห็นอะไรจริง ๆ ค่าที่ถูกเข้ารหัสซ้อน (ที่ % เองถูกเข้ารหัสเป็น %25) จะปรากฏให้เห็นทันที

Form data round-trip

เมื่อดีบัก POST body ใน application/x-www-form-urlencoded ให้ถอดรหัสโดยเปิดสวิตช์ "+ เป็นช่องว่าง" นั่นคือรูปแบบที่เบราว์เซอร์ใช้ และการลืมเรื่องนี้คือสาเหตุอันดับ 1 ของบั๊ก "ทำไมชื่อผู้ใช้ของฉันถึงมีเครื่องหมายบวก"

ทำไมการเข้ารหัสในเครื่องจึงสำคัญ

URL ที่คุณเข้ารหัสมักมีอีเมลลูกค้าจริง, ID หรือ session token — เป็นข้อมูลประเภทที่คุณไม่อยากวางลงในเครื่องมือบนเซิร์ฟเวอร์ของคนแปลกหน้า iKit URL Encoder ทำงานเป็น JavaScript ที่โหลดมาในเบราว์เซอร์ของคุณอยู่แล้ว ดังนั้นอินพุตจึงไม่เคยออกจากแท็บของคุณ

  • ไม่มี fetch, XHR หรือ beacon ระหว่างการเข้ารหัสหรือถอดรหัส
  • ทำงานแบบออฟไลน์ได้เมื่อหน้าโหลดเสร็จแล้ว
  • ไม่มีล็อก ไม่มี rate limit ไม่ต้องสมัครสมาชิก ไม่มีโควตารายวัน

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

บทความเชิงลึกและการเปรียบเทียบเครื่องมือจากบล็อก iKit

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

โหมด Component, URI และ Form ต่างกันอย่างไร?

Component (encodeURIComponent) escape ทุกอย่างที่ไม่ใช่อักขระ unreserved — ปลอดภัยที่สุดสำหรับค่า query-string, ส่วนของ path หรือฟิลด์เดี่ยวใด ๆ URI (encodeURI) คงอักขระโครงสร้าง URL (:/?#=&) ไว้ — ใช้กับ URL ทั้งอัน Form (application/x-www-form-urlencoded) คือ Component บวกกับการเปลี่ยนช่องว่างเป็น '+' — เป็นรูปแบบที่ HTML form ใช้

ทำไมอักขระบางตัวจึงไม่ถูกเข้ารหัส?

RFC 3986 กำหนดชุดอักขระ "unreserved" ที่ไม่ต้องเข้ารหัส: A-Z a-z 0-9 - _. ~ นอกเหนือจากนี้จะถูก percent-encoded encodeURIComponent ยังเข้ารหัส :/?#&= เพิ่มเติมที่ encodeURI ปล่อยไว้ ความต่างนี้สำคัญเมื่อคุณกำลังเข้ารหัสค่า query เทียบกับ URL ทั้งอัน

ทำไมข้อความที่ถอดรหัสแล้วดูผิด?

สาเหตุที่พบบ่อยสามอย่าง: (1) ต้นฉบับเข้ารหัสแบบ Form จึงต้องถือว่า '+' เป็นช่องว่าง — เปิดตัวเลือกนั้น (2) เข้ารหัสซ้อน — อินพุตถูกเข้ารหัสสองครั้ง ให้ถอดรหัสอีกครั้ง (3) ลำดับ percent ไม่ถูกต้อง — มี % ที่ไม่ตามด้วยเลขฐานสิบหกสองตัว ตรวจสอบข้อความผิดพลาดเพื่อดูตำแหน่งไบต์ที่แน่นอน

URL ที่เข้ารหัสเหมือนกับ encodeURIComponent ของ JavaScript เป๊ะ ๆ ไหม?

ใช่สำหรับโหมด Component — เราเรียก encodeURIComponent โดยตรง โหมด Form เพิ่มการปรับมาตรฐานของ form-encoding (! ' * กลายเป็น %21 %27 %28 %29 %2A) ตาม RFC 3986 + WHATWG โหมด URI เรียก encodeURI ซึ่งคือสิ่งที่ภาษาส่วนใหญ่หมายถึงเมื่อพูดว่า 'percent-encode a URL'

URL ของฉันถูกอัปโหลดไปที่ไหนหรือไม่?

ไม่ เครื่องมือทั้งหมดเป็น JavaScript ภายในหน้านี้ — การเข้ารหัสและถอดรหัสเกิดขึ้นในเบราว์เซอร์ของคุณ คุณสามารถยืนยันได้โดยเปิด DevTools → Network แล้วดู: ไม่มีคำขอใดถูกส่งระหว่างการเข้ารหัสหรือถอดรหัส