我有一个关于 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'
至'č'
。是否有任何内置解决方案可以避免自定义字符串替换?
最佳答案
当你这样做
d1 = '\u010d'
你实际上得到了这个字符串:
In [3]: d1
Out[3]: '\\u010d'
这是因为“普通”(非 Unicode)字符串无法识别 \unnnn
转义序列,因此将其转换为文字反斜杠,后跟 unnnn
.
为了解码它,您需要使用 unicode_escape
codec :
In [4]: print d1.decode("unicode_escape").encode('utf-8')
č
但是,当然,您首先不应该在非 Unicode 字符串中使用 Unicode 转义序列。
关于python - 将 ASCII 编码转换为 Unicode 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126080/