最近、、、、およびエンコーディング __repr__()で多くの問題が発生しました。の出力はエンコードする必要がありますか、それともユニコード文字列にする必要がありますか?Python の結果に最適なエンコーディングはありますか?出力したいのは非ASCII文字です。format()__repr__()__repr__()
私はPython2.xを使用しており、Python3に簡単に適応できるコードを記述したいと考えています。
# -*- coding: utf-8 -*-
from __future__ import unicode_literals, print_function # The 'Hello' literal represents a Unicode object
ここに私を悩ませてきたいくつかの追加の問題があります、そして私はそれらを解決する解決策を探しています:
- UTF-8端末への印刷は機能するはずです(私はに
sys.stdout.encoding設定しましUTF-8たが、他の場合も機能するのが最善です)。 - 出力をファイル(UTF-8でエンコード)にパイプすることは機能するはずです(この場合は
sys.stdout.encodingですNone)。 __repr__()多くの関数の私のコードには現在多くのものがreturn ….encode('utf-8')あり、それは重いです。頑丈で軽いものはありますか?- 場合によっては
return ('<{}>'.format(repr(x).decode('utf-8'))).encode('utf-8')、オブジェクトの表現がデコードされ、フォーマット文字列に入れられてから再エンコードされるなど、醜い獣さえいます。私はそのような複雑な変化を避けたいと思います。
__repr__()これらのエンコーディングの質問に関してうまく動作する単純な関数を書くために、あなたは何をすることをお勧めしますか?