1

很愚蠢的问题,我知道。当然,通常 LANG=C 表示不能显示 Unicode 字符的 ASCII 终端。但我仍然想打印出 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')
4

1 回答 1

2

要将 a 编码unicode为 utf-8,请调用.encode('utf-8')它。:

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