UTF-8 解码不解码 python 中的特殊字符
UTF-8 decoding doesn't decode special characters in python
您好,我有以下来自 API.
的数据(抽象)
"Product" : "T\u00e1bua 21X40"
我正在使用以下代码解码数据字节:
var = json.loads(cleanhtml(str(json.dumps(response.content.decode('utf-8')))))
cleanhtml 是我创建的正则表达式函数,用于从返回的数据中删除 html 标记(它工作正常)。虽然,decode(utf-8)
并没有删除像 \u00e1
这样的字符。我的预期输出是:
"Product" : "Tábua 21X40"
我尝试使用 replace("\u00e1", "á")
但没有成功。怎么替换这种类型的字符,这是什么类型的字符?
\u00e1
是显示 Python 字符串内容时表示 á
字符的另一种方式。
如果您打开 Python 交互式会话和 运行 print({"Product" : "T\u00e1bua 21X40"})
,您将看到 {'Product': 'Tábua 21X40'}
的输出。 \u00e1
作为单独的字符不存在于字符串中。
\u
转义序列表示后面的数字指定一个 Unicode 字符。
尝试用 á
替换 \u00e1
不会有任何效果,因为它已经是这样了。此外,replace("\u00e1", "á")
试图替换斜杠、u
等的各个字符,并且如前所述,它们实际上并不以这种方式存在于字符串中。
如果您进一步解释您遇到的问题,那么我们可能会提供更多帮助,但目前听起来字符串的内容正确,只是显示方式与您预期的不同。
这是什么类型的角色
这里
"Product" : "T\u00e1bua 21X40"
你可能会观察到 \u
escape sequence,它后面跟着 4 个十六进制数字:00e1
,请注意,这是相同字符的不同 表示,所以
print("\u00e1" == "á")
产出
True
这些类型的字符称为字符实体。有不同类型的实体,这是 JSON 个实体。为了演示,输入您的字符串 here 并单击 unescape。
对于你的问题,如果你正在使用 python 那么你可以通过导入 json 模块来解决问题。然后你必须按如下方式对其进行解码。
import json
string = json.loads('"T\u00e1bua 21X40"')
print(string)
您好,我有以下来自 API.
的数据(抽象)"Product" : "T\u00e1bua 21X40"
我正在使用以下代码解码数据字节:
var = json.loads(cleanhtml(str(json.dumps(response.content.decode('utf-8')))))
cleanhtml 是我创建的正则表达式函数,用于从返回的数据中删除 html 标记(它工作正常)。虽然,decode(utf-8)
并没有删除像 \u00e1
这样的字符。我的预期输出是:
"Product" : "Tábua 21X40"
我尝试使用 replace("\u00e1", "á")
但没有成功。怎么替换这种类型的字符,这是什么类型的字符?
\u00e1
是显示 Python 字符串内容时表示 á
字符的另一种方式。
如果您打开 Python 交互式会话和 运行 print({"Product" : "T\u00e1bua 21X40"})
,您将看到 {'Product': 'Tábua 21X40'}
的输出。 \u00e1
作为单独的字符不存在于字符串中。
\u
转义序列表示后面的数字指定一个 Unicode 字符。
尝试用 á
替换 \u00e1
不会有任何效果,因为它已经是这样了。此外,replace("\u00e1", "á")
试图替换斜杠、u
等的各个字符,并且如前所述,它们实际上并不以这种方式存在于字符串中。
如果您进一步解释您遇到的问题,那么我们可能会提供更多帮助,但目前听起来字符串的内容正确,只是显示方式与您预期的不同。
这是什么类型的角色
这里
"Product" : "T\u00e1bua 21X40"
你可能会观察到 \u
escape sequence,它后面跟着 4 个十六进制数字:00e1
,请注意,这是相同字符的不同 表示,所以
print("\u00e1" == "á")
产出
True
这些类型的字符称为字符实体。有不同类型的实体,这是 JSON 个实体。为了演示,输入您的字符串 here 并单击 unescape。 对于你的问题,如果你正在使用 python 那么你可以通过导入 json 模块来解决问题。然后你必须按如下方式对其进行解码。
import json
string = json.loads('"T\u00e1bua 21X40"')
print(string)