gpt4 book ai didi

python - 在 Python 中将 UTF-8 转换为字符串文字

转载 作者:太空狗 更新时间:2023-10-29 22:26:17 27 4
gpt4 key购买 nike

我有一个 UTF-8 格式的字符串,但不确定如何将此字符串转换为相应的字 rune 字。例如我有字符串:

我的字符串是:'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 对象编码为字节字符串。

请注意,当显示一个 unicode 对象时,Python 再次使用 Unicode 字符串文字语法表示它(所以 u'...'), 以方便调试。您可以将表示粘贴回 Python 解释器并获得具有相同值的对象。

您的 a 值是使用字节字符串文字定义的,因此您只需要解码:

a = 'Entre\xc3\xa9'
b = a.decode('utf8')

您的第一个示例创建了一个 Mojibake ,一个 Unicode 字符串,其中包含实际表示 UTF-8 字节的 Latin-1 代码点。这就是为什么您必须先编码为 Latin-1(以撤消 Mojibake),然后从 UTF-8 解码。

您可能想在 Unicode HOWTO 中阅读有关 Python 和 Unicode 的内容.其他感兴趣的文章是:

关于python - 在 Python 中将 UTF-8 转换为字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com