在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.'
答案 0 :(得分:2)
当将变量插值到html字符串/模板中时,您需要正确地对字符串进行转义。
character escapes的HTML中使用了“&”字符,因此您需要将其替换为&
。
对于Python 2,您可以使用cgi.escape
:
import cgi
text="<font>%s</font>" % cgi.escape(name)
对于Python 3,您可以在cgi.escape
和html.escape
之间进行选择:
import html
text="<font>%s</font>" % html.escape(name)
也请查看python wiki page for html escapes,以全面了解python中不同的html转义功能:)