2012年6月21日木曜日

UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position xxx-xxx: illegal multibyte sequence

Pythonで日本語をあつかう時に注意すること

shift_jisのファイルを読み込むと次のようなエラーが発生する場合

UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position xxx-xxx: illegal multibyte sequence

(xxxには数字が入ります)




解決方法



string = '何らかの機種依存文字'

通常shift_jisの時は下記のようにするところを

string.encode('shift_jis')



このように変更する

string.encode('cp932')



このcp932というのは、
Microsoft コードページ 932(以下 CP932)は、マイクロソフト及び、MS-DOSOEM ベンダが Shift JIS を独自に拡張した文字コードである。また同時に、CP932 は Shift_JIS の Windows アプリケーションにおける「実装」を指す用語であるとも言える。
(Wikipediaより引用: Microsoftコードページ932 - Wikipedia
だそうです。

0 件のコメント:

コメントを投稿