将ASCII转换为Unicode编码问题

23 浏览
0 Comments

将ASCII转换为Unicode编码问题

我对Python 2编码有一个问题。我试图将包含字母的Unicode代码的ASCII字符串解码为Unicode,然后将其重新编码为Latin-1,但是没有成功。这里是一个示例:

In[27]: d = u'\u010d'
In[28]: print d.encode('utf-8')
č
In[29]: d1 = '\u010d'
In[30]: d1.decode('ascii').encode('utf-8')
Out[30]: '\\u010d'

我想将'\u010d'转换为'č'。有没有内置的解决方案来避免自定义字符串替换?

0
0 Comments

问题的出现原因是因为在使用非Unicode字符串时,不识别\unnnn转义序列,因此将其转换为字面上的反斜杠,后跟unnnn。解决方法是使用unicode_escape编解码器对其进行解码。但是在非Unicode字符串中不应该使用Unicode转义序列。

解决方法代码如下:

d1 = '\u010d'
print d1.decode("unicode_escape").encode('utf-8')

这样就可以正确解码并输出字符 "č"。

0