今まで無視していた標準出力の文字化けを直す。
Windowsの標準出力で文字化けが起こる場合、
基本的にはShift_JIS(cp932)にエンコードすればOK。
ちなみにうちの開発環境はeclipse。
keyword = "図書館戦争"
print keyword.encode('cp932')
[出力]
図書館戦争
無事出力☆
でも、sitecustomize.py、defaultencoding、Eclipseワークスペース、
ソースファイル全てのエンコードにutf-8を設定しているのに
何でこんなことになるんだろう??
答えはWindowsのMS-DOSで解決。
Windowsの標準コードはShift_JISなので、
標準出力についてはそっちに依存してたんだと納得。
C\:> chcp
現在のコード ページ: 932
実際、pythonの標準入力・出力系の文字コードを確認してみると、
cp932であることが確認できた。
>>> sys.stdin.encoding
'cp932'
>>> sys.stdout.encoding
'cp932'
>>> sys.stderr.encoding
'cp932'
内部でどうなっているかは分からないけど、
今後入出力はcp932で行なう事を意識する。
0 件のコメント:
コメントを投稿