0

我尝试使用 chardet 包检测 Python 3 中简单 UTF-16-LE 文本文件的编码,使用以下代码:

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

为什么chardet100% 确定文本文件是 ascii,而它显然是 UTF-16?

4

1 回答 1

0

这是一个 chardet 问题,仍在等待修复:https ://github.com/chardet/chardet/pull/109

于 2020-05-12T08:26:47.917 回答