当LANG = C时,如何在Python 2中打印Unicode

时间:2012-07-12 18:21:27

标签: python unicode

我知道,这是个愚蠢的问题。当然,通常LANG = C表示ASCII终端 它不能显示Unicode字符。但我还想打印出UTF-8字节。我使用Python 2(实际2.6.5)

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

这会在Unicode终端上打印'ää',但第二个字符串在使用LANG = C执行时会导致错误。我不希望Python变得聪明,只需将u'\ xe4'转换为UTF-8,因此它在内存中只是'\ xc3 \ xa4'。

我尝试了所有我能想象的decode(),encode()和unicode()的组合,但似乎我错过了正确的组合。

我真正想要的是通过vi的system()函数读取Unicode字符,例如

:echo system('python foo.py')

1 个答案:

答案 0 :(得分:2)

要将unicode编码为utf-8,请在其上调用.encode('utf-8')

>>> u'\xe4'.encode('utf-8')
'\xc3\xa4'