ทำไมไฟล์ CSV ถึงแสดงตัวอักษรแปลก ๆ ใน Excel
ความสับสนเรื่องการเข้ารหัสตัวอักษรที่ทำให้ข้อความเพี้ยน และวิธีแก้สามวิธี
คุณเปิด CSV ใน Excel แล้วชื่ออย่าง Müller หรือ José แสดงสัญลักษณ์แปลก ๆ แทนตัวอักษรที่มีเครื่องหมาย เครื่องหมายยูโรและอะพอสทรอฟีก็กลายเป็นกลุ่มอักขระประหลาดเช่นกัน ข้อมูลของคุณไม่ได้ผิดพลาด แต่ Excel อ่านไฟล์ด้วยการเข้ารหัสตัวอักษรที่ผิด
เกิดอะไรขึ้น
ไฟล์ข้อความเป็นเพียงไบต์ และการเข้ารหัสคือกฎที่ใช้แปลงไบต์ให้เป็นตัวอักษร ระบบสมัยใหม่เกือบทั้งหมดเขียนไฟล์ CSV เป็น UTF-8 ซึ่งรองรับทุกภาษา แต่ Excel บน Windows เมื่อดับเบิลคลิกเปิด CSV ยังคงสันนิษฐานว่าเป็นการเข้ารหัสระดับภูมิภาครุ่นเก่า เช่น Windows-1252 เว้นแต่ไฟล์จะขึ้นต้นด้วยเครื่องหมายเล็ก ๆ ที่เรียกว่า byte order mark หรือ BOM ถ้าไม่มี BOM ตัวอักษรทุกตัวที่ไม่ใช่ภาษาอังกฤษธรรมดาจะถูกถอดรหัสด้วยกฎที่ผิด และตัวอักษรที่มีเครื่องหมายแต่ละตัวจะออกมาเป็นอักขระขยะสองหรือสามตัว
ข้อมูลยังอยู่ครบ ลองเปิดไฟล์เดียวกันใน Google Sheets, Numbers หรือโปรแกรมแก้ไขข้อความ ก็จะเห็นว่าปกติดี
วิธีแก้ที่ 1: เพิ่ม BOM
ถ้าไฟล์เป็น UTF-8 ที่ถูกต้อง และมีแค่ Excel ที่แสดงผิด ให้ใช้ เครื่องมือแก้การเข้ารหัส โดยเปิดตัวเลือก BOM ตัวอักษรจะไม่เปลี่ยนแปลง แต่เครื่องหมายนี้บอก Excel ให้อ่านเป็น UTF-8 และหลังจากนั้นดับเบิลคลิกเปิดได้ถูกต้องทุกครั้ง
วิธีแก้ที่ 2: แปลงเป็นไฟล์ Excel จริง
ไฟล์ .xlsx ไม่มีความกำกวมเรื่องการเข้ารหัสเลย เครื่องมือแปลง CSV เป็น Excel อ่าน CSV ได้ถูกต้องและบันทึกเป็นเวิร์กบุ๊กที่เปิดได้ถูกต้องทุกที่ อีกทั้งยังเก็บเลขศูนย์นำหน้าในรหัสไปรษณีย์และเบอร์โทรศัพท์ไว้ ซึ่ง Excel จะตัดทิ้งเมื่อเปิด CSV โดยตรง
วิธีแก้ที่ 3: นำเข้าแทนการดับเบิลคลิก
ใน Excel ให้ใช้ Data, From Text/CSV แล้วตั้ง File Origin เป็น 65001: Unicode (UTF-8) Excel จะอ่านไฟล์ได้ถูกต้อง วิธีนี้ใช้ได้ แต่ต้องจำทำทุกครั้ง นี่จึงเป็นเหตุผลที่สองวิธีแรกเหมาะกว่าสำหรับไฟล์ที่ต้องแชร์
เมื่อตัวไฟล์เสียหายไปแล้ว
บางครั้งอักขระเพี้ยนถูกบันทึกลงในไฟล์ไปแล้ว ซึ่งเกิดขึ้นเมื่อมีคนเปิดไฟล์ UTF-8 ใน Excel เห็นตัวอักษรเพี้ยน แล้วบันทึกซ้ำ ตอนนี้อักขระขยะกลายเป็นข้อมูลไปแล้ว และคุณจะเห็นปัญหาในทุกโปรแกรม ไม่ใช่แค่ใน Excel เครื่องมือแก้การเข้ารหัส มีโหมดซ่อมสำหรับกรณีนี้โดยเฉพาะ คือย้อนการเข้ารหัสซ้อนสองชั้นและคืนตัวอักษรเดิมกลับมา โหมดอัตโนมัติของเครื่องมือตรวจพบกรณีนี้ได้ในไฟล์ส่วนใหญ่
วินิจฉัยอย่างรวดเร็ว
| สิ่งที่เห็น | สาเหตุที่น่าจะเป็น | วิธีแก้ |
|---|---|---|
| ผิดเฉพาะใน Excel ที่อื่นปกติ | ไม่มี BOM | เพิ่ม BOM หรือแปลงเป็น .xlsx |
| ผิดในทุกโปรแกรม | ไฟล์ถูกบันทึกหลังจากอ่านผิด | ซ่อมการเข้ารหัสซ้อน |
| เครื่องหมายคำถามหรือกล่องสี่เหลี่ยม | ไฟล์ถูกบันทึกด้วยการเข้ารหัส Windows รุ่นเก่า | แปลงจาก Windows-1252 เป็น UTF-8 |
การป้องกัน
- เมื่อส่งออกจาก Excel ให้เลือก CSV UTF-8 แทน CSV ธรรมดา
- เมื่อส่งออกจากระบบอื่นให้ผู้ใช้ Excel ให้ใส่ BOM ถ้ามีตัวเลือกนี้
- อย่าบันทึกซ้ำ CSV ที่ดูเพี้ยนเด็ดขาด ให้แก้การเข้ารหัสก่อน