คำว่า mojibake มาจากไหน
ในภาษาอังกฤษ ข้อความที่เพี้ยนเรียกว่า mojibake มาจากภาษาญี่ปุ่น 文字化け แปลว่า “ตัวอักษรที่เปลี่ยนร่าง” ในช่วงทศวรรษ 1990 ญี่ปุ่นใช้การเข้ารหัสหลายแบบพร้อมกัน อีเมลและเว็บไซต์ที่อ่านไม่ออกจึงพบได้ทั่วไป ส่วนคนไทยมักเรียกอาการนี้ว่า “ภาษาต่างดาว”
ภาษาต่างดาวเกิดขึ้นได้อย่างไร
คอมพิวเตอร์เก็บตัวอักษรเป็นไบต์ และการเข้ารหัสเป็นตัวกำหนดว่าไบต์ไหนคือตัวอักษรอะไร ภาษาไทยใน TIS-620 (Windows-874) ใช้ 1 ไบต์ต่อตัวอักษร เช่น ไทย คือ E4 B7 C2 ถ้าโปรแกรมอ่านไบต์เหล่านี้ด้วยการเข้ารหัสภาษาตะวันตก (Windows-1252) จะเห็นเป็น ä·Â แทน
ในขั้นตอนนี้ไบต์ไม่ได้หายไปไหน แค่ถูกอ่านผิดวิธี จึงกู้คืนได้ด้วยการอ่านใหม่ด้วยการเข้ารหัสที่ถูกต้อง Mojibuster จะแปลงตัวอักษรที่เพี้ยนกลับเป็นไบต์ แล้วอ่านใหม่ให้ถูกต้อง
ภาษาต่างดาว
ÀÒÉÒä·ÂÍèÒ¹äÁèÍÍ¡ á¡éä¢àÃÕºÃéÍÂáÅéÇ
หลังแก้
ภาษาไทยอ่านไม่ออก แก้ไขเรียบร้อยแล้ว
รูปแบบที่พบบ่อย
ä·Âและตัวอักษรละตินที่มีเครื่องหมายแปลก ๆ: ข้อความ TIS-620 ที่เปิดบนเครื่องที่ตั้งค่าภาษาตะวันตก (แปลง TIS-620 เป็น UTF-8)- ตัวอักษรไทยปนสัญลักษณ์ที่ไม่เป็นคำ: ไฟล์ CSV แบบ UTF-8 ที่ดับเบิลคลิกเปิดใน Excel (Excel CSV ภาษาไทยเพี้ยน)
?หรือ�: ตัวอักษรที่แปลงไม่ได้ถูกแทนที่ไปแล้ว ข้อมูลเดิมหายไป
สาเหตุที่พบบ่อย
- ดับเบิลคลิกเปิดไฟล์ CSV แบบ UTF-8 ที่ไม่มี BOM ใน Excel
- เปิดไฟล์ TIS-620 หรือ Windows-874 บน Mac หรือในโปรแกรมที่รองรับเฉพาะ UTF-8
- เว็บไซต์หรืออีเมลระบุการเข้ารหัส (charset) ไม่ตรงกับความจริง
- ข้อความที่เพี้ยนแล้วถูกแปลงซ้ำอีกครั้ง
แก้ได้ทุกกรณีไหม
เกือบทุกกรณี ตราบใดที่ไบต์ยังอยู่ครบ แต่ถ้าตัวอักษรถูกแทนที่ด้วย ? หรือ � ระหว่างบันทึกหรือส่งต่อ ข้อมูลเดิมก็หายไปแล้วและกู้คืนไม่ได้ Mojibuster จะแก้ทุกส่วนที่แก้ได้ และบอกจำนวนจุดที่กู้คืนไม่ได้
ป้องกันภาษาต่างดาว
- บันทึกไฟล์เป็น UTF-8 และบันทึกไฟล์ CSV สำหรับ Excel เป็น UTF-8 แบบมี BOM
- ใส่
<meta charset="utf-8">ใน HTML และใช้utf8mb4ใน MySQL และ MariaDB - เวลานำเข้าข้อมูล ให้เลือกการเข้ารหัสเองแทนการปล่อยให้โปรแกรมเดา
- แปลงการเข้ารหัสเพียงครั้งเดียว ที่จุดเชื่อมต่อระหว่างสองระบบ
คำถามที่พบบ่อย
ภาษาต่างดาวแก้ได้ไหม?
ได้ ภาษาต่างดาวส่วนใหญ่เป็นแค่ข้อความที่ถูกอ่านด้วยการเข้ารหัสผิด วางข้อความหรือลากไฟล์มาที่ช่องด้านบน Mojibuster จะตรวจและแก้ให้อัตโนมัติ
ไฟล์เสียหรือติดไวรัสหรือเปล่า?
ไม่ใช่ ภาษาต่างดาวเป็นปัญหาการแสดงผล ไม่ใช่ไวรัส และส่วนใหญ่ข้อมูลยังอยู่ครบ
ภาษาต่างดาวกับ � ต่างกันอย่างไร?
ข้อความอย่าง ä·Â ยังมีไบต์เดิมอยู่ จึงแก้ได้ ส่วน � แปลว่าโปรแกรมอ่านไบต์นั้นไม่ได้และแทนที่ไปแล้ว ตัวอักษรเดิมจึงหายไป
ข้อความถูกอัปโหลดหรือไม่?
ไม่ Mojibuster แก้ข้อความในเบราว์เซอร์ของคุณ ข้อความไม่ถูกส่งออกไปและไม่ถูกเก็บไว้