Ich habe geprüft, ob Python den Zeichencode automatisch ermitteln kann, und mir eine Notiz gemacht.
Mit einem Paket namens "Chardet" war das ganz einfach.
Usage — chardet 2.3.0 documentation
test.py
from chardet.universaldetector import UniversalDetector
def check_encoding(file_path):
detector = UniversalDetector()
with open(file_path, mode='rb') as f:
for binary in f:
detector.feed(binary)
if detector.done:
break
detector.close()
print(detector.result, end='')
print(detector.result['encoding'], end='')
def main():
check_encoding('/path/to/sjis.txt')
check_encoding('/path/to/utf8.txt')
if __name__ == '__main__':
main()
Ausgabebeispiel
$ python test.py
{'encoding': 'CP932', 'confidence': 0.99}
CP932
{'encoding': 'utf-8', 'confidence': 0.99}
utf-8
Bitte beachten Sie, dass es einige Zeit dauern kann, um festzustellen, ob es sich um eine große Datei handelt. (Der obige "Universal Detetor" scheint zu enden, sobald er bestimmt werden kann.)
Kodierung des Urteils in Python - Qiita Usage — chardet 2.3.0 documentation
Recommended Posts