ในระบบไฟล์ของฉัน (Windows 7) ฉันมีไฟล์ข้อความบางไฟล์ (นี่คือไฟล์สคริปต์ SQL หากมีความสำคัญ)
เมื่อเปิดด้วยNotepad ++ในเมนู "การเข้ารหัส" บางรายการถูกรายงานว่ามีการเข้ารหัส "UCS-2 Little Endian" และ "UTF-8 ที่ไม่มี BOM" บางส่วน
ความแตกต่างที่นี่คืออะไร? พวกเขาทั้งหมดดูเหมือนจะเป็นสคริปต์ที่สมบูรณ์แบบ ฉันจะบอกได้อย่างไรว่าการเข้ารหัสไฟล์นั้นไม่มีแผ่นจดบันทึก ++
enca
และchardet
สำหรับระบบ POSIX
iconv
โดยเฉพาะอย่างยิ่งมีประโยชน์สำหรับวัตถุประสงค์นี้ โดยพื้นฐานแล้วคุณวนซ้ำสตริงอักขระ / ข้อความที่เสียหายผ่านการเข้ารหัสที่แตกต่างกันเพื่อดูว่าอันไหนใช้ได้ คุณชนะเมื่อตัวละครไม่เสียหายอีกต่อไป ฉันชอบที่จะตอบที่นี่ด้วยตัวอย่างการเขียนโปรแกรม แต่มันเป็นคำถามที่ได้รับการป้องกัน
chardet
หรือchardetect
ไม่มีอยู่ในระบบของคุณคุณสามารถติดตั้งแพ็กเกจผ่านตัวจัดการแพ็กเกจของคุณ (เช่นapt search chardet
- บน Ubuntu / เดเบียนแพคเกจมักจะเรียกว่าpython-chardet
หรือpython3-chardet
) หรือผ่านpipด้วยpip install chardet
(หรือpip install cchardet
สำหรับรุ่น c-optimization ที่เร็วขึ้น)