如何使用 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']