1

かなりばかげた質問だと思います。もちろん、通常、LANG = Cは、Unicode文字を表示できないASCII端末を示します。それでも、UTF-8バイトを出力したいと思います。私はPython2を使用しています(実際には2.6.5)

print '\xc3\xa4', u'\xe4'

これにより、Unicode端末に「ää」が出力されますが、2番目の文字列をLANG = Cで実行すると、エラーが発生します。Pythonをスマートにしたくはありませんが、u'\ xe4'をUTF-8に変換するだけなので、メモリ内では' \ xc3\xa4'になります。

想像できるdecode()、encode()、unicode()のすべての組み合わせを試しましたが、正しい組み合わせを見逃したようです。

私が実際に欲しいのは、viのsystem()関数を介してUnicode文字を読み取ることです。

:echo system('python foo.py')
4

1 に答える 1

2

unicodeaを utf-8 にエンコードするには.encode('utf-8')、それを呼び出します。

>>> u'\xe4'.encode('utf-8')
'\xc3\xa4'
于 2012-07-12T18:31:21.927 に答える