エンコード検出のためのLIBがあります: https://pypi.python.org/pypi/chardet (Pythonでの自動検出をエンコードする文字。ブラウザと同じくらいスマート。オープンソース)
検出...
- ASCII、UTF-8、UTF-16(2バリアント)、UTF-32(4バリアント)
- BIG5、GB2312、EUC-TW、HZ-GB-2312、ISO-2022-CN(伝統的および単純化された中国語)
- EUC-JP、Shift_jis、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(タイ)
ドキュメントの例:
>>> import urllib
>>> rawdata = urllib.urlopen('http://yahoo.co.jp/').read()
>>> import chardet
>>> chardet.detect(rawdata)
{'encoding': 'EUC-JP', 'confidence': 0.99}