gpt4 book ai didi

python - 将 unicode 字符串转换为 utf-8

转载 作者:行者123 更新时间:2023-12-01 01:57:28 24 4
gpt4 key购买 nike

首先,我知道在 Python 2.x 中存在大量有关字符串编码/解码的问题,但我似乎无法找到该问题的解决方案。

我有一个 unicode 字符串,其中包含字母 č,表示为 \u00c4\u008d

如果我在Python控制台中编写

>>> a = u"\u00c4\u008d"
>>> print a

我打印出两个奇怪的字符,而不是 č,可能是因为该字符串的实际编码应该是 UTF-8。因此我尝试使用 .decode("utf-8") 但为此我得到了标准 UnicodeEncodeError

你知道如何让 Python 在控制台中将该字符串打印为 č 吗?

非常感谢

最佳答案

č 不由 u'\u00c4\u008d' 表示。这两个十六进制值是 UTF-8 编码值,因此应以字节字符串形式编写为 '\xc4\x8d'。示例:

>>> s = '\xc4\x8d'
>>> s.decode('utf8')
u'\u010d'
>>> print(s.decode('utf8'))
č

警告:您的终端必须配置支持正确打印字符的编码,否则您将看到 UnicodeEncodeError

如果由于某种原因您的 Unicode 字符串解码错误,您可以利用 Unicode 的前 256 个代码点与 latin1 编码相关的事实来修复它:

>>> s = u'\u00c4\u008d'
>>> s.encode('latin1')
'\xc4\x8d'
>>> s.encode('latin1').decode('utf8')
u'\u010d'
>>> print(s.encode('latin1').decode('utf8'))
č

如果您的 Unicode 字符串解码错误,您应该显示您拥有的文件或读取该文件的代码并解决该问题。

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

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