亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中轉義HTML的最簡單方法是什么?

在Python中轉義HTML的最簡單方法是什么?

紅顏莎娜 2019-11-13 14:33:05
cgi.escape似乎是一種可能的選擇。它運作良好嗎?有什么更好的東西嗎?
查看完整描述

3 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

cgi.escape很好 它逃脫了:


< 至 &lt;

> 至 &gt;

& 至 &amp;

對于所有HTML而言,這就足夠了。


編輯:如果您有非ASCII字符,您還想轉義,以便包含在使用不同編碼的另一個編碼文檔中,如Craig所說,只需使用:


data.encode('ascii', 'xmlcharrefreplace')

不要忘了解碼data到unicode第一,使用任何編碼它編碼的。


但是根據我的經驗,如果您unicode從頭開始一直都在工作,那么這種編碼是沒有用的。只需在文檔頭中指定的編碼末尾進行編碼(utf-8以實現最大兼容性)。


例:


>>> cgi.escape(u'<a>bá</a>').encode('ascii', 'xmlcharrefreplace')

'&lt;a&gt;b&#225;&lt;/a&gt;

另外值得一提的(感謝Greg)是額外的quote參數cgi.escape。將其設置為True,cgi.escape還轉義雙引號字符("),因此您可以在XML / HTML屬性中使用結果值。


編輯:請注意,在Python 3.2中不推薦使用cgi.escape,而推薦使用,html.escape除了quote默認值為True 以外,它的功能相同。


查看完整回答
反對 回復 2019-11-13
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

在Python 3.2中html,引入了一個新模塊,該模塊用于從HTML標記轉義保留字符。


它具有一個功能escape():


>>> import html

>>> html.escape('x > 2 && x < 7')

'x &gt; 2 &amp;&amp; x &lt; 7'


查看完整回答
反對 回復 2019-11-13
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

如果您希望在URL中轉義HTML:


這可能不是OP想要的(問題并不能清楚地表明轉義是在哪種上下文中使用的),但是Python的本機庫urllib具有一種逃避需要安全包含在URL中的HTML實體的方法。


以下是一個示例:


#!/usr/bin/python

from urllib import quote


x = '+<>^&'

print quote(x) # prints '%2B%3C%3E%5E%26'


查看完整回答
反對 回復 2019-11-13
  • 3 回答
  • 0 關注
  • 723 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號