Python中HTML Unicode转义字符正确解码方法 解决URL斜杠异常问题
正确解码Unicode转义HTML的方案
问题原因
你当前使用的解码方案存在两处缺陷:
- 直接使用
unicode-escape解码时,仅能识别\u开头的Unicode转义序列,无法正确处理JSON规范下的斜杠转义符\/,会将其错误解析为\\/,导致URL和标签结尾出现多余反斜杠 - 没有对HTML实体编码进行还原,导致
<、"这类实体符号无法恢复为原始标签、引号
正确实现步骤(Python3 示例)
你拿到的原始内容属于JSON序列化后的Unicode编码HTML字符串,完全符合JSON转义规范,因此直接用JSON解析器处理比手动替换更稳定:
- 导入依赖模块
import json import html
- 执行解码
# 第一步:用JSON解析器自动处理Unicode转义和斜杠转义,消除多余反斜杠 unicode_decoded = json.loads(f'"{response.text.strip()}"') # 第二步:还原HTML实体编码,得到完整的原始HTML内容 result = html.unescape(unicode_decoded)
额外说明
- 如果你的原始内容本身就是完整JSON结构中的某一个字段,直接对整个响应做JSON解析后提取对应字段即可,不需要额外套双引号处理。
- 如果运行时出现JSON解析错误,大概率是原始字符串中存在未转义的双引号,可先执行预处理
response.text = response.text.replace('"', '\\"')再套双引号解析。
内容的提问来源于stack exchange,提问作者Windula Kularatne
相关产品推荐
相关产品推荐

