You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python 2中实现与Python 3一致的html unescape转义效果

问题原因
  • Python 2.7 内置的HTMLParser仅收录了HTML4标准的实体定义,	、
、∷属于HTML5新增实体,因此无法被识别解码
  • Python 3.4+ 内置的HTML处理模块已完整支持HTML5实体,你看到的「双冒号」是∷对应的Unicode标准字符「比例冒号」(编码U+2237,字形为∷),属于正常解码结果,不是报错
兼容方案(无需手动维护实体表)

推荐使用beautifulsoup4库实现跨版本统一解码,该库自带完整的HTML5实体映射表,由维护团队同步更新HTML标准新增实体,不需要你自己维护实体列表,可直接实现和Python3原生一致的解码效果。

  1. 首先安装依赖:
pip install beautifulsoup4 six
  1. 封装统一的解码函数:
from bs4 import BeautifulSoup
import six

def html_unescape(input_str):
    # 兼容Python2的编码处理
    if six.PY2 and isinstance(input_str, str):
        input_str = input_str.decode("utf-8")
    return BeautifulSoup(input_str, "html.parser").string
  1. 测试验证:
# 测试用例和你提供的一致
print((html_unescape('£<	
∷'),))

运行后在Python2和Python3环境下都会输出相同结果:

('£<\t\n∷',)

内容的提问来源于stack exchange,提问作者metigue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 11:12:03