unicode_str = utf8_data.decode('utf-8')
とするとutf8_dataにデコードできないバイト列があった場合、UnicodeDecodeErrorの例外をだす。
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb4 in position 1: unexpected code byte
デコードできない文字列を削除してしまっていいのなら'ignore'を引数で渡してやればよい。
unicode_str = utf8_data.decode('utf-8', 'ignore')
さらにdecodeよりunicodeの方が高速らしい。
unicode_str = unicode(utf8_data, "utf-8", 'ignore')
エンコード、デコードの概念はPerlと同じなので理解しやすかった。
参考
http://snippets.hachinos.net/lang/python/user/piro_suke/3/
http://d.hatena.ne.jp/methane/20090816/1250433407
0 件のコメント:
コメントを投稿