Я попытался определить кодировку простого текстового файла UTF-16-LE в Python 3 с помощью пакета chardet, используя следующий код:
rawdata = open(filename, 'rb').read()
result = chardet.detect(rawdata)
print(result['encoding'], result['confidence'])
rawdata
(содержимое файла) следующие:
b'N\x00O\x00T\x00 \x00Y\x00O\x00U\x00R\x00 \x00L\x00A\x00N\x00G\x00U\x00A\x00G\x00E\x00?\x00 \x00U\x00S\x00E\x00 \x00h\x00t\x00t\x00p\x00s\x00:\x00/\x00/\x00t\x00r\x00a\x00n\x00s\x00l\x00a\x00t\x00e\x00.\x00g\x00o\x00o\x00g\x00l\x00e\x00.\x00c\x00o\x00m\x00'
Результат приведенного выше кода следующий:
ascii 1.0
Почему chardet
100% уверен, что текстовый файл находится в формате ascii, когда это явно UTF -16?