แก้ CSV ภาษาไทยเพี้ยนใน Excel
- ไม่ต้องสมัครสมาชิก
- ฟรี 100%
- ไม่เก็บข้อมูลบนเซิร์ฟเวอร์
ไฟล์ CSV ไม่ได้บอกว่าตัวเองเขียนด้วยชุดอักขระอะไร Excel บน Windows จึงต้องเดา และกับภาษาที่ไม่ใช่อังกฤษมันมักเดาผิด นั่นคือเหตุผลที่ไฟล์รายชื่อภาษาไทยเปิดออกมาเป็นอักขระละตินมีขีดมีหนวดเต็มไปหมด ไม่มีอะไรพัง ไฟล์ปกติดีและ Excel ก็ทำงานตามที่ออกแบบไว้ เรื่องนี้จบได้ด้วยสามไบต์ที่หัวไฟล์ เครื่องมือนี้หาว่าไฟล์เขียนด้วยอะไรจริง ๆ แสดงแถวแรก ๆ ให้ดูว่าอ่านถูกแล้ว แล้วบันทึกสำเนาที่ Excel เปิดได้ถูกต้อง
1 · ไฟล์ที่ Excel อ่านผิด
2 · ที่จริงมันเขียนว่าอะไร
แถวแรก ๆ อ่านด้วยการเข้ารหัสที่ระบบหาได้ ถ้าตรงนี้อ่านถูก ไฟล์ที่ดาวน์โหลดก็จะเปิดถูก
ยังไม่ได้เพิ่มไฟล์
คำถามที่พบบ่อย
ทำไม Excel ถึงทำแบบนี้
ไฟล์ CSV คือข้อความล้วน และไฟล์ข้อความไม่ได้ระบุว่าตัวเองใช้ชุดอักขระอะไร Excel บน Windows จึงอ่านด้วย code page ของระบบ เว้นแต่ไฟล์จะขึ้นต้นด้วยสามไบต์ที่เรียกว่า byte-order mark ระบบส่งออกส่วนใหญ่เขียน UTF-8 โดยไม่มี mark นั้น ไฟล์ภาษาไทยจึงมาถูกแต่เปิดผิด ไฟล์ไม่เคยเสียหาย แค่โปรแกรมสองตัวเข้าใจธรรมเนียมไม่ตรงกัน
มันเปลี่ยนอะไรในไฟล์บ้าง
เติมสามไบต์นั้นเข้าไป หรือถ้าเป็นการเข้ารหัสไทยแบบเก่าก็แปลงเป็น UTF-8 ก่อนแล้วค่อยเติม ตัวข้อความไม่ถูกแตะเลย แถวเท่าเดิม คอลัมน์เท่าเดิม ค่าเท่าเดิม ผลลัพธ์เปิดได้ในทุกโปรแกรม และตอนนี้ Excel จะเห็นตรงกับคนอื่นแล้ว
ไฟล์ของฉันถูกอัปโหลดไหม
ไม่ เบราว์เซอร์ของคุณอ่านไบต์ หาการเข้ารหัส แล้วเขียนไฟล์ใหม่ ทั้งหมดในแท็บนี้ นโยบายความปลอดภัยของเว็บกำหนด connect-src ‘none’ เบราว์เซอร์จึงบล็อกการเรียกเครือข่ายจากหน้านี้ ไฟล์ที่ส่งออกมาแล้วตัวอักษรเพี้ยนมักเป็นรายชื่อลูกค้าหรือประวัติคำสั่งซื้อ ซึ่งเป็นไฟล์ประเภทที่ไม่ควรยื่นให้เว็บไหนพอดี
ทำไมไม่บอกให้ใช้ Data แล้ว From Text แทน
เพราะวิธีนั้นใช้ได้แต่ไม่มีใครจำได้ ต้องกดเข้าไปสี่หน้าต่าง และต้องทำใหม่ทุกไฟล์ อีกอย่างมันไม่ช่วยคนที่คุณส่งไฟล์ไปให้ ซึ่งจะดับเบิลคลิกเปิดแล้วเจอตัวประหลาดชุดเดิม การแก้ที่ตัวไฟล์คือการแก้ให้ทุกคนที่เปิดมันต่อจากนี้
ถ้าหาการเข้ารหัสไม่ได้จะเป็นยังไง
มันจะบอกตรง ๆ แล้วไม่ทำอะไร มีแค่สองอย่างที่ยืนยันได้ คือ UTF-8 ที่ถูกต้อง ซึ่งพิสูจน์ได้เพราะลำดับไบต์ที่ผิดจะถูกปฏิเสธทันที และ Windows-874 ของไทย ซึ่งยืนยันได้จากการเจอตัวอักษรไทย นอกจากนั้นคือการเดา และการเดาผิดจะเขียนทับไฟล์คุณให้แย่กว่าตอนเริ่ม
ใช้กับภาษาอื่นได้ไหม
ส่วนที่เติม byte-order mark ใช้ได้กับทุกภาษา ญี่ปุ่น เกาหลี อาหรับ กรีก รัสเซีย และอื่น ๆ ที่เป็น UTF-8 ล้วนเจอปัญหาเดียวกันกับ Excel และแก้ด้วยวิธีเดียวกัน ส่วนที่แปลงการเข้ารหัสตอนนี้เข้าใจแค่ Windows-874 ของไทย เพราะเป็นการเข้ารหัสเก่าที่เครื่องมือนี้ถูกสร้างมาเพื่อมัน