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