Pythonのお勉強 Part3000.12
■ このスレッドは過去ログ倉庫に格納されています
0390デフォルトの名無しさん
2006/09/03(日) 01:05:49入力時に一括してcp932でデコードし、出力時に一括してutf-8でエンコードすればよい。
たとえば
import codecs, sys
file = codecs.open(filename, encoding="cp932")
text = file.readline()
などとして読み込む。この時点で text は unicode オブジェクト。さらに
Writer = codecs.getwriter("utf-8")
stream = Writer(sys.stdout)
print >>stream, text
などとして標準出力に印字する。
標準出力が端末のときは自動的にロケールに沿ってエンコードされるが
標準出力がファイル等にリダイレクトされている場合には
デフォルトエンコーディング(多くの場合 ascii)でエンコードされる。
よって上記のように print >>stream, ... 形式を使うのが安全確実。
■ このスレッドは過去ログ倉庫に格納されています