หน้าแรก › บทความ › ทำไมไฟล์ CSV มีปัญหาใน Excel
นักพัฒนาและเว็บ

ทำไมไฟล์ CSV เปิดใน Excel แล้วสระภาษาไทยเพี้ยนและเลข 0 หาย? วิธีแก้ปัญหา BOM และตัวคั่น

วันที่เผยแพร่: 25 ตุลาคม 2026 • อัปเดตล่าสุด: 2 พฤศจิกายน 2026 • ผู้เขียน: ทีมวิศวกร GoToolstack • เครื่องมือที่ใช้ทดสอบ: เครื่องมือแปลง JSON ↔ CSV GoToolstack
แปลงและแก้ไขไฟล์ CSV และ JSON ได้อย่างสมบูรณ์แบบ: รองรับการใส่ UTF-8 BOM อัตโนมัติ เลือกลักษณะตัวคั่น (ลูกน้ำ/เซมิโคลอน) และคงเลข 0 นำหน้าไว้ได้อย่างถูกต้อง
เปิดเครื่องมือแปลง JSON ↔ CSV
สารบัญเนื้อหา
  1. ปัญหาคลาสสิก 3 ประการเมื่อเปิดไฟล์ CSV ด้วย Microsoft Excel
  2. บทบาทของ Byte Order Mark (UTF-8 BOM: 0xEF, 0xBB, 0xBF)
  3. ปัญหาตัวคั่นจุลภาค (,) เทียบกับเซมิโคลอน (;) และเลขศูนย์นำหน้า
  4. คำถามที่พบบ่อย (FAQ)

1. ปัญหาคลาสสิก 3 ประการเมื่อเปิดไฟล์ CSV ด้วย Microsoft Excel

ไฟล์ CSV (Comma-Separated Values) เป็นรูปแบบข้อมูลตารางที่เป็นข้อความธรรมดา แต่เมื่อผู้ใช้งานดับเบิลคลิกเปิดใน Microsoft Excel มักจะพบปัญหาชวนปวดหัว 3 อย่าง:

  1. ภาษาไทยกลายเป็นตัวอักษรขยะต่างดาว (Mojibake): เช่น ข้อความ "รายงานลูกค้า" กลายเป็น "Ã Ã Ã Ã" หรือเครื่องหมายคำถาม
  2. ข้อมูลทุกคอลัมน์ไปกองรวมกันในคอลัมน์ A: ตารางไม่ยอมแยกคอลัมน์ตามตัวคั่น
  3. เลข 0 ตัวแรกหายไป: เช่น เบอร์โทรศัพท์ 0812345678 หรือรหัสสินค้า 00123 ถูกแปลงเป็นตัวเลข 812345678 และ 123

2. บทบาทของ Byte Order Mark (UTF-8 BOM: 0xEF, 0xBB, 0xBF)

Excel ในระบบปฏิบัติการ Windows ถูกออกแบบมาในยุคเดิมที่ใช้รหัสภาษาเฉพาะถิ่น (ANSI Code Page เช่น Windows-874 สำหรับภาษาไทย) เมื่อเปิดไฟล์ CSV ที่ไม่มีลายเซ็นกำกับ Excel จะถือว่าไฟล์นั้นเป็น ANSI เสมอ ไม่ใช่ UTF-8

การแก้ไขที่ถูกต้องคือการใส่ไบต์ UTF-8 BOM (0xEF, 0xBB, 0xBF) ไว้ที่ต้นไฟล์ เพื่อเป็นสัญญาณสั่งให้ Excel เปิดอ่านด้วยการถอดรหัส UTF-8 โดยอัตโนมัติ สระและพยัญชนะภาษาไทยจึงจะแสดงผลได้อย่างถูกต้อง

3. ปัญหาตัวคั่นจุลภาค (,) เทียบกับเซมิโคลอน (;) และเลขศูนย์นำหน้า

ในหลายภูมิภาคยุโรป เครื่องหมายจุลภาคถูกใช้เป็นตัวคั่นทศนิยม ระบบจึงตั้งค่าตัวคั่นรายการเป็นเซมิโคลอน (;) หากเปิดไฟล์ที่มีเครื่องหมายจุลภาค Excel จะไม่แยกคอลัมน์

สำหรับการรักษาเลข 0 นำหน้า ฟิลด์ดังกล่าวจะต้องถูกครอบด้วยสูตรข้อความ เช่น ="0812345678" ในไฟล์ CSV เพื่อบังคับไม่ให้ Excel พยายามแปลงข้อความเป็นตัวเลข

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

ทำไมโปรแกรม Notepad เปิดภาษาไทยได้ปกติ แต่ Excel อ่านไม่ออก?

Notepad รุ่นใหม่มีระบบตรวจจับการเข้ารหัส UTF-8 อัตโนมัติแม้ไม่มี BOM แต่ Excel ยังคงใช้ตารางรหัส ANSI ตามค่ารีจิสทรีของระบบปฏิบัติการหากไม่มีไบต์ BOM กำกับ