unicode to str in python 2.7.3

时间:2015-08-10 14:08:32

标签: python unicode

我在python中从unicode转换为str时遇到了一些问题。 给出一些背景信息:

>>> u'\xce\xb1\xce\xac'.decode('utf8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

现在出于一些stange原因,我有一个库函数,在αά的情况下给出字符串u'\ xce \ xb1 \ xce \ xac',我需要得到字符串u'\ u03b1 \ u03ac'和我尝试的一切如果我尝试解码给我错误

不起作用
>>> str(u'\xce\xb1\xce\xac')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

所以我需要一种在'xce \ xb1 \ xce \ xac'中制作u'xce \ xb1 \ xce \ xac'的方法,它不适用于str:

insert

欢迎任何关于如何做的想法。

1 个答案:

答案 0 :(得分:2)

被修改

您的输入似乎是双重编码的,因此您应该:

>>> u'\xce\xb1\xce\xac'.encode('raw_unicode_escape').decode('utf8')
u'\u03b1\u03ac'

起初我认为你的终端编码是一个问题,它不接受打印'αά'.decode('utf8') ......

参见相关文章:

对不起我的错误。