我有一个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'设为变量并在现在中断时将其传递给各个步骤。有什么让它工作的秘诀吗?
示例:
a = 'Entre\xc3\xa9'
b = 'u'+ a.encode('latin-1').decode('utf-8')
c= 'u'+ b
我希望“c”的结果是:
Entreé
u''
语法仅适用于字符串文本,例如在源代码中定义值。使用语法会创建一个unicode
对象,但这并不是创建此类对象的唯一方法。不能通过在字节字符串前面添加
u
来从字节字符串生成unicode
值。但如果使用正确的编码调用str.decode()
,则会得到unicode
值。反之亦然,您可以使用unicode.encode()
将对象编码为字节字符串。注意,当显示一个
unicode
对象时,Python通过再次使用Unicode字符串文本语法(所以u'...'
)来表示它,以便于调试。您可以将表示粘贴回Python解释器中,并获得具有相同值的对象。您的
a
值是使用字节字符串文字定义的,因此您只需要解码:您的第一个示例创建了一个Mojibake,一个Unicode字符串,其中包含实际表示UTF-8字节的拉丁语-1代码点。这就是为什么你必须先编码成拉丁语-1(撤销Mojibake),然后从UTF-8解码。
您可能需要阅读Unicode HOWTO中的Python和Unicode。其他相关物品包括:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)作者Joel Spolsky
Pragmatic Unicode作者:Ned Batchelder
相关问题 更多 >
编程相关推荐