8

Ubuntu12.04LTSを使用しています。ターミナルでこのようなことを試してみると:

rfx@digest:/usr/share/fonts/truetype/ttf-dejavu$ echo вдлжофыдвж
вдлжофыдвж

記号は正しく表示されます。しかし、Python 2.7を使用してUnicodeシンボルを印刷しようとすると、次のようになります。

>>> print u'абв'
ц│ц┌ц≈

Pythonが示すように、ターミナルにはデフォルトでutf-8エンコーディングがあります。

>>> sys.stdout.encoding
'UTF-8'
4

1 に答える 1

5

入力が端末によって不適切に解読されています。これはPythonの問題ではありません。

それを証明するには、Unicode表現を使用します。

myunicode = u'\u0430\u0431\u0432'
print myunicode
print myunicode.encode('utf-8')

これで元の文字列が2回出力されない場合はабв、ターミナルエミュレータプログラムを正しく設定する必要があります。

于 2012-08-06T18:01:29.877 に答える