您可能知道,要使电子邮件在许多客户端中有效,必须对所有 unicode 字符进行编码。我想在 Python 脚本中自动执行此编码。
显然需要从转换中排除标签,否则 html 将无法工作 - 这样做确实是一个复杂的部分 - 为了确保成功,有必要使用像 lxml 或 beautifulsoup 这样的解析包。
据我所知,这两个包都不支持转换为编号的 unicode 实体,例如 & #x6F22 ; (汉)
任何帮助都是非常宝贵的,我整天都在用头撞墙!
最佳答案
我遇到过类似的问题,但是在原始文本上运行以下表达式总是足够的,它只是将十六进制实体转换为十进制实体,然后就可以很好地解析了:
>>> hex_entity_pat = re.compile('&#x([^;]+);')
>>> hex_entity_fix = lambda x: hex_entity_pat.sub(lambda m: '&#%d;' % int(m.group(1), 16), x) # convert hex to dec entities
>>> BeautifulSoup(hex_entity_fix("<b>漢</b>"), convertEntities=BeautifulSoup.ALL_ENTITIES)
<b>漢</b>
关于python - 在 Python 中将 unicode 字符编码为 HTML 实体,不包括标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216972/