0

3 つのプロパティを持つオブジェクトを返す何らかの API を呼び出しています。

obj.name
obj.id
obj.text

これらはすべて異なるエンコーディングで提供される可能性があります。

私の端末に正しく出力するために、私は今やっています

print obj.name.encode('UTF-8')
print obj.id.encode('UTF-8')
print obj.text.encode('UTF-8')

デフォルトのエンコーディングをUTF-8に設定するために一度だけできる方法はありますか?

Python 2.7.xではもう利用できないsys.setdefaultencoding( 'UTF-8')の呼び出しを提案した他の投稿を読みました

お知らせ下さい。

4

1 に答える 1

3

通常、Pythonは端末設定から出力エンコーディングを検出します。次のコマンドを実行すると、Pythonが検出した内容を確認できます。

import sys
sys.stdout.encoding

それがうまくいかない場合は、正しいエンコーディングを指定するように端末を構成する必要があります。LC_CTYPEたとえば、POSIXシステムで環境変数を設定します。

PYTHONIOENCODING環境変数を設定することで、Pythonにエンコーディングを強制的に使用させることもできます。

$ PYTHONIOENCODING=latin-1 python -c 'import sys; print sys.stdout.encoding'
latin-1
$  PYTHONIOENCODING=utf8 python -c 'import sys; print sys.stdout.encoding'
utf8
于 2013-02-19T14:19:46.647 に答える