ReSuMeYaDev

เครื่องมือนักพัฒนา

แปลง Base64 / URL Encode / HTML Encode

3 โหมดใน 1 — Base64, URL encode, HTML entity encode รองรับ UTF-8 ภาษาไทย แปลง real-time ขณะพิมพ์ สลับ input/output ทันที

  • ใช้งานฟรี
  • Base64/URL/HTML
  • UTF-8 ไทย
  • รองรับมือถือ

Base64

Base64 Encoding คืออะไร?

Base64 คือวิธีเข้ารหัส (encoding) ข้อมูลแบบ binary ให้อยู่ในรูปแบบข้อความ ASCII โดยใช้อักขระ 64 ตัว ได้แก่ A-Z, a-z, 0-9, + และ / พร้อมเครื่องหมาย = สำหรับ padding ข้อมูลที่เข้ารหัสจะมีขนาดเพิ่มขึ้นประมาณ 33%

Base64 ถูกกำหนดไว้ใน RFC 4648 มักใช้ในการส่งข้อมูลผ่าน protocol ที่รองรับเฉพาะข้อความ เช่น อีเมล (MIME), Data URI ใน HTML/CSS, JSON Web Token (JWT) และ API ต่างๆ

URL Encode

เมื่อไรควรใช้ URL Encoding?

URL Encoding (หรือ Percent-encoding) จำเป็นเมื่อต้องส่งอักขระพิเศษหรืออักขระที่ไม่ใช่ ASCII ผ่าน URL:

  • ส่งข้อมูลผ่าน query string เช่น ?search=สวัสดี จะเป็น ?search=%E0%B8%AA%E0%B8%A7%E0%B8%B1%E0%B8%AA%E0%B8%94%E0%B8%B5
  • ส่งอักขระพิเศษ เช่น &, =, ?, # ที่มีความหมายพิเศษใน URL
  • ส่งข้อมูลฟอร์มแบบ application/x-www-form-urlencoded
  • สร้าง URL ที่มีช่องว่างหรืออักขระภาษาไทย

HTML Encode

HTML Encoding สำคัญอย่างไร?

HTML Encoding แปลงอักขระพิเศษให้เป็น HTML entities เพื่อแสดงผลอย่างถูกต้องในเว็บเพจ และป้องกันการโจมตีแบบ Cross-Site Scripting (XSS) อักขระที่ต้อง encode ได้แก่ & (ampersand), < (less-than), > (greater-than), " (double quote) และ ' (single quote)

< จะถูกแปลงเป็น &lt; และ & จะถูกแปลงเป็น &amp;

การใช้งานที่พบบ่อย

การใช้งานที่พบบ่อย

  • Base64: ฝังรูปภาพใน HTML/CSS ด้วย Data URI (data:image/png;base64,...)
  • Base64: เข้ารหัส credentials สำหรับ HTTP Basic Authentication
  • Base64: เก็บข้อมูล binary ใน JSON หรือ XML
  • URL Encode: ส่งพารามิเตอร์ที่มีอักขระพิเศษผ่าน URL
  • URL Encode: สร้าง deep link สำหรับแอปมือถือ
  • HTML Encode: แสดงโค้ด HTML บนหน้าเว็บอย่างปลอดภัย
  • HTML Encode: ป้องกัน XSS attack ในข้อมูลที่รับจากผู้ใช้

เคล็ดลับ

เคล็ดลับการใช้งาน

  • Base64 ไม่ใช่การเข้ารหัส (encryption) ข้อมูลสามารถถอดรหัสได้ง่าย ห้ามใช้เก็บข้อมูลที่เป็นความลับ
  • URL Encoding ใช้ encodeURIComponent() สำหรับค่า parameter แต่ใช้ encodeURI() สำหรับ URL ทั้งหมด
  • HTML Encoding ควรทำเสมอก่อนแสดงข้อมูลจากผู้ใช้บนเว็บเพจ
  • เครื่องมือนี้รองรับ UTF-8 ทำให้แปลงข้อความภาษาไทยได้อย่างถูกต้อง
  • ผลลัพธ์จะแปลงอัตโนมัติขณะพิมพ์ ไม่ต้องกดปุ่มแปลง

กรณีใช้งานจริง

กรณีใช้งานจริง

  • แปลงรูปภาพเป็น Base64 Data URI เพื่อฝังใน HTML/CSS โดยไม่ต้อง request ไฟล์แยก
  • Decode JWT token เพื่อดู payload ข้างในว่ามี claims อะไร โดยไม่ต้อง verify signature
  • URL Encode พารามิเตอร์ภาษาไทยก่อนส่งผ่าน query string เพื่อป้องกันอักขระเพี้ยน
  • HTML Encode โค้ดตัวอย่างก่อนแสดงบนบทความสอน เพื่อป้องกัน XSS และแสดง tag ได้ถูกต้อง
  • แปลง Base64 encoded email attachment กลับเป็นข้อความเพื่ออ่านเนื้อหาที่ encode มา

หลีกเลี่ยง

ข้อผิดพลาดที่พบบ่อย

  • ใช้ Base64 เพื่อ "เข้ารหัส" ข้อมูลลับ เช่น password หรือ API key ซึ่งไม่ปลอดภัยเพราะ decode กลับได้ทันที
  • ใช้ encodeURI() แทน encodeURIComponent() สำหรับ query parameter ทำให้อักขระ & = ? ไม่ถูก encode
  • ลืม decode URL ที่ encode ซ้อนกันหลายชั้น (%2520 แทน %20) ทำให้ server ตีความผิด
  • ไม่ระบุ charset เป็น UTF-8 เมื่อ Base64 encode ข้อความภาษาไทย ทำให้ decode กลับมาเป็นอักขระเพี้ยน

เปรียบเทียบ

เปรียบเทียบกับเครื่องมืออื่น

เครื่องมือของเรารวม 3 encoding ไว้ในหน้าเดียว (Base64, URL Encode, HTML Encode) ต่างจากเว็บอื่นที่แยกเป็นคนละหน้า ทำให้สลับ mode ได้สะดวกโดยไม่ต้องเปิดหลาย tab

เมื่อเทียบกับ command-line เช่น base64 หรือ Python urllib.parse เครื่องมือนี้แปลงแบบ real-time ขณะพิมพ์ รองรับ UTF-8 ภาษาไทยโดย default และมีปุ่ม swap สลับ input/output ได้ทันที

FAQ

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

01 Base64 คืออะไร และใช้ทำอะไร?

Base64 คือการเข้ารหัสข้อมูล binary ให้เป็นข้อความ ASCII 64 ตัวอักษร ใช้ในการส่งข้อมูลผ่านระบบที่รองรับเฉพาะข้อความ เช่น อีเมล, Data URI, JWT Token และ API ต่างๆ

02 Base64 กับ Encryption ต่างกันอย่างไร?

Base64 เป็นแค่การ encoding (เปลี่ยนรูปแบบ) ไม่ใช่ encryption (เข้ารหัสลับ) ใครก็สามารถ decode Base64 กลับได้ ไม่ควรใช้เก็บรหัสผ่านหรือข้อมูลลับ

03 URL Encode กับ HTML Encode ต่างกันอย่างไร?

URL Encode แปลงอักขระพิเศษเป็น %XX (เช่น ช่องว่าง = %20) สำหรับใช้ใน URL ส่วน HTML Encode แปลงเป็น HTML entities (เช่น < = &lt;) สำหรับแสดงบนหน้าเว็บ

04 ทำไมต้อง URL Encode ข้อความภาษาไทย?

URL ตามมาตรฐาน RFC 3986 รองรับเฉพาะอักขระ ASCII อักขระภาษาไทยต้องถูก encode เป็น %XX เพื่อให้ browser และ server ตีความได้ถูกต้อง

05 เครื่องมือนี้รองรับภาษาไทยไหม?

รองรับครับ เครื่องมือนี้ใช้ TextEncoder/TextDecoder สำหรับ UTF-8 จึงรองรับภาษาไทยและทุกภาษาอย่างถูกต้อง ทั้ง Base64, URL Encode และ HTML Encode

06 Base64URL ต่างจาก Base64 ปกติอย่างไร?

Base64URL ใช้ - แทน + และ _ แทน / เพื่อให้ safe สำหรับใช้ใน URL โดยไม่ต้อง percent-encode อีกชั้น JWT token ใช้ Base64URL encoding เป็นมาตรฐาน

07 ทำไม Base64 ทำให้ข้อมูลใหญ่ขึ้น 33%?

เพราะ Base64 แปลงทุกๆ 3 bytes (24 bits) เป็น 4 ตัวอักษร ASCII ทำให้ขนาดเพิ่มจาก 3 เป็น 4 bytes ไม่เหมาะสำหรับไฟล์ขนาดใหญ่ที่ต้องการประหยัด bandwidth

08 Double encoding คืออะไร และป้องกันอย่างไร?

Double encoding คือการ encode ข้อมูลที่ encode แล้วซ้ำอีกครั้ง เช่น %20 กลายเป็น %2520 เกิดจากเรียก encodeURIComponent() สองครั้ง ป้องกันโดยตรวจสอบว่า input ถูก encode แล้วหรือยัง

แหล่งอ้างอิง

  1. MDN Web Docs — btoa(), atob(), encodeURIComponent(), decodeURIComponent()
  2. RFC 4648 — The Base16, Base32, and Base64 Data Encodings
  3. RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax
  4. OWASP — Cross-Site Scripting (XSS) Prevention Cheat Sheet

เครื่องมือนี้ประมวลผลทั้งหมดบน browser ของคุณ ไม่มีข้อมูลถูกส่งไปยัง server แต่ไม่ควรใช้กับข้อมูลที่เป็นความลับสูง

นักพัฒนา

เครื่องมือคำนวณฟรีอื่น ๆ ที่คุณอาจสนใจ

ดูทั้งหมดในหมวดนี้

ต้องการเครื่องมือคำนวณสำหรับธุรกิจของคุณ?

ReSuMeYaDev รับพัฒนาเว็บไซต์ เครื่องมือคำนวณ และระบบภายในตามความต้องการ — Laravel, Vue, Nuxt, Go, Rust