我有一个 UTF-8 格式的字符串,但不太确定如何将此字符串转换为其相应的字符文字。例如我有字符串:
我的字符串是:'Entre\xc3\xa9'
示例一:
这段代码:
u'Entre\xc3\xa9'.encode('latin-1').decode('utf-8')
返回结果:u'Entre\xe9'
如果我继续打印:
print u'Entre\xe9'
我得到结果:Entreé
这很棒并且接近我的需要。问题是,我无法将 'Entre\xc3\xa9' 设置为变量并通过步骤传递它,因为现在这会中断。有什么建议可以让它发挥作用吗?
Example:
a = 'Entre\xc3\xa9'
b = 'u'+ a.encode('latin-1').decode('utf-8')
c= 'u'+ b
我希望“c”的结果是:
Entreé
The u''
syntax 仅适用于字符串文字,例如在源代码中定义值。使用语法结果unicode
正在创建的对象,但这不是创建此类对象的唯一方法。
你不能做一个unicode
通过添加字节字符串中的值u
在它的前面。但如果你打电话str.decode()
使用正确的编码,您会得到unicode
价值。反之亦然,你可以encode unicode
对象到字节字符串unicode.encode()
.
请注意,当显示unicode
对象,Python代表再次使用 Unicode 字符串文字语法(所以u'...'
),以方便调试。您可以将表示形式粘贴回 Python 解释器并获取具有相同值的对象。
Your a
value 是使用字节字符串文字定义的,因此您只需要解码:
a = 'Entre\xc3\xa9'
b = a.decode('utf8')
你的第一个例子创建了一个Mojibake http://en.wikipedia.org/wiki/Mojibake,包含实际表示 UTF-8 字节的 Latin-1 代码点的 Unicode 字符串。这就是为什么您必须首先编码为 Latin-1(以撤消 Mojibake),然后从 UTF-8 解码。
您可能想阅读有关 Python 和 Unicode 的内容统一码指南 https://docs.python.org/2/howto/unicode.html。其他感兴趣的文章有:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)