Pythonで文字列エンコーディング

例えばWindowsクライアントからアップロードされたCSVとかはたいていShift_JISなわけです。Pythonは基本的にUTF-8(Django使ってるから、というのも大きな理由ですな)なので、そのままだとえらいこっちゃになるわけです。

u”ほげほげ”.encode(‘cp932′,’utf-8’)

cp932(Shift_JIS)からutf-8にエンコードしますよ、という指定です。「文字列.encode(‘utf-8’)」でもいいのですが、それだとエンコード前の文字列エンコーディングは自動判定みたいですね。しょっちゅう「こんな文字列エンコード知らない」ってエラーが出ました。

ので、「~から~にエンコードしてね」ってやさしく説明してあげたほうが確実というわけです。