5

当我尝试转换 unicode 时:

a = u"Тест"

要字符串:

str(a)

我收到了这个错误:

'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

我需要 str(a) 给我输出:

>> str(a)
>> 'Тест'
4

1 回答 1

4

选择一种可以编码西里尔符号的编码,例如 UTF-8:

>>> a = u'Тест'

>>> a.encode('utf-8')
'\xd0\xa2\xd0\xb5\xd1\x81\xd1\x82'

ASCII 表没有西里尔字符的代码点,因此您需要明确指定编码。

但是,如果您只想打印字符串,那么您应该关心的是终端的编码和系统字体。

于 2013-04-25T15:06:42.350 回答