我不知道为什么这个问题被搁置为“关闭主题”。"我要求编程帮助,而不是参考(这就是解释为什么它被关闭的说法)。这是我原来的问题: 我有一个python 3脚本,用于将HTML格式的电子邮件发送到大约600人的列表中。 Sendmail显然不能发送高于127(十进制)的非ascii字符,除非我跳过带有MIME的箍。所以我考虑用HTML&#...来批量替换所有重音字符。等同物。
我宁愿不使用正则表达式,因为我不熟练使用正则表达式。有没有办法不使用循环,或至少不是一个复杂的循环?
答案 0 :(得分:2)
用Google搜索" python编码html实体",第一个结果:https://wiki.python.org/moin/EscapingHtml:
通过ASCII编码转义的内置HTML / XML
将非ASCII字符(如德语变音符号或带重音符号的字母)转换为HTML等效字符的一种非常简单的方法是将它们从unicode编码为ASCII并使用xmlcharrefreplace编码错误处理:
>>> a = u"äöüßáà"
>>> a.encode('ascii', 'xmlcharrefreplace')
'äöüßáà'
答案 1 :(得分:1)
您可以使用str.translate()
和html
包中的实体:
import html
text = "a text with ä and ö"
ent = {k: '&{};'.format(v) for k, v in html.entities.codepoint2name.items()}
print(text.translate(ent))
输出:
a text with ä and ö