【发布时间】:2016-07-07 16:03:36
【问题描述】:
我有一个关于 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' 转换为'č'。是否有任何内置解决方案可以避免自定义字符串替换?
【问题讨论】:
-
首先,ASCII 字符串不能包含像 č 这样的重音字符,因为它们不是 ASCII 的一部分。 Python对此很严格,它不会将ASCII解释为“每个字符使用一个字节的任何东西”。现在,如果您使用 Python 的
unicode而不是str来存储字符串,您实际上可以存储该字符,也许还可以将其转换为 Latin-1 字节表示。不过,我建议您更新到 Python 3,因为它针对不同的编码进行了更好的设计。
标签: python python-2.x