greenteaの日記: [python]機種依存文字とUnicodeDecodeError
日記 by
greentea
PythonでASCII以外の文字コードが使われている文字列を扱うときは、いったんcodecs.getWriter()やらcodecs.decode()やらでUnicodeに変換すると便利だが、
適切な文字コードを選択している*つもり*にも関わらず、
codecs.getWriter('shift_jis')やらcodecs.getWriter('euc-jp')が
UnicodeDecodeErrorを吐いて困った。
調べてみると、いわゆる機種依存文字が使われていてデコードに失敗している模様。
早い話、機種依存文字が使われている文字列は、Shift_JIS、euc-jpでもない何かでエンコードされているわけである。
そういうわけで、対策法は、それ用の別の文字コードでデコードしましょう。
例えば
Shift_JIS を cp932 にしてみたり
euc-jp を euc_jisx0213 にしてみたり
環境によって違うだろうが、うちでは
/usr/lib/python2.5/encodings
にあるファイル名から存在する文字コードを推測できた。
[python]機種依存文字とUnicodeDecodeError More ログイン