如何使用 Python 检测文本文件的编码
Python 中有一个有用的包 - chardet,它有助于检测文件中使用的编码。实际上没有程序可以 100%放心地说使用了哪种编码 - 这就是为什么 chardet 给编码文件编码的概率最高的原因。Chardet 可以检测以下编码:
- ASCII,UTF-8,UTF-16(2 种变体),UTF-32(4 种变体)
- Big5,GB2312,EUC-TW,HZ-GB-2312,ISO-2022-CN(繁体中文和简体中文)
- EUC-JP,SHIFT_JIS,CP932,ISO-2022-JP(日文)
- EUC-KR,ISO-2022-KR(韩文)
- KOI8-R,MacCyrillic,IBM855,IBM866,ISO-8859-5,windows-1251(西里尔文)
- ISO-8859-2,windows-1250(匈牙利语)
- ISO-8859-5,windows-1251(保加利亚语)
- windows-1252(英文)
- ISO-8859-7,windows-1253(希腊语)
- ISO-8859-8,windows-1255(视觉和逻辑希伯来语)
- TIS-620(泰国语)
你可以使用 pip 命令安装 chardet :
pip install chardet
之后你可以在命令行中使用 chardet:
% chardetect somefile someotherfile
somefile: windows-1252 with confidence 0.5
someotherfile: ascii with confidence 1.0
或者在 python 中:
import chardet
rawdata = open(file, "r").read()
result = chardet.detect(rawdata)
charenc = result['encoding']