文字コードを判別するには?

時々、いろんな文章を扱っていると文字コードの扱いに困る。
なので、どうしたらいいものか?と考えたら判定すればいいと思った。

それで、調べてみたら見つかった。
http://speirs.blog17.fc2.com/blog-entry-4.html

のように、片っ端から文字コードを試していけばいい。

シンプルながらも非常に強力なやり方だ。

ただ、この場合だと当初の目的の「どのコードか?」わからない。

なので、ちょっとだけ行を追加してやる。

for encoding in lookup:
try:
data = data.decode(encoding)
## print encodingを追加した ##
print encoding
break
except:
pass

これでどのコードで変換されたか?わかるので、判定できる。