html文字中的怪异字符。在变量字符串中插入`;`

时间:2019-07-17 15:42:11

标签: python html

在python中使用html文本时,我看到了奇怪的字符。它只是这个名称,正在其中插入奇怪的字符;

我的html文本如下:

text="<font name=Helvetica color=white size=8>Name:  </font><font name=Helvetica-Bold color=white size=8>%s </font>" % name

其中name = 'A&B CDE F.'但输出为:'Name: A&B; CDE F.'

1 个答案:

答案 0 :(得分:2)

当将变量插值到html字符串/模板中时,您需要正确地对字符串进行转义。

character escapes的HTML中使用了“&”字符,因此您需要将其替换为&amp;

对于Python 2,您可以使用cgi.escape

import cgi
text="<font>%s</font>" % cgi.escape(name)

对于Python 3,您可以在cgi.escapehtml.escape之间进行选择:

import html
text="<font>%s</font>" % html.escape(name)

也请查看python wiki page for html escapes,以全面了解python中不同的html转义功能:)