絵文字ありのテキストファイルを処理する
ケータイメールのデータを処理するのに便利かな。
ポイントは codecs の encoding に 'shift_jis' ではなく 'mbcs' を指定する点。
#!/usr/bin/env python # -*- coding: utf-8 -*- import codecs def main(): # fin = codecs.open('sample.txt', 'r', 'shift_jis') # これでは encode 時にエラーが出る文字がある fin = codecs.open('sample.txt', 'r', 'mbcs') # こっちは正常に unicode 化される fout = codecs.open('out.txt', 'w', 'mbcs') # unicode から逆変換する for line in fin: print type(line) # 念のため line の型を調べる print >> fout, line, if __name__ == '__main__': main()
print type(line) の結果は、ちゃんと
<type 'unicode'>
だった。