什麼是轉義字元
在 HTML 中 <、>、& 等字元有特殊含義(<,> 用於標籤中,& 用於轉義),他們不能在 HTML 程式碼中直接使用,如果要在網頁中顯示這些符號,就需要使用 HTML 的轉義字串(Escape Sequence),例如 < 的轉義字元是 <,瀏覽器渲染 HTML 頁面時,會自動把轉移字串換成真實字元。
轉義字元(Escape Sequence)由三部分組成:第一部分是一個 & 符號,第二部分是實體(Entity)名字,第三部分是一個分號。 比如,要顯示小於號(<),就可以寫< 。
顯示字元 說明 轉義字元
< 小於 <
空格
< 小於 <
> 大於 >
& &符號 &
" 雙引號 "
© 版權 ©
® 已註冊商標 ®
Python 轉義字串反轉義
用 Python 來處理轉義字串有多種方式,而且 py2 和 py3 中處理方式不一樣,在 python2 中,反轉義的模組是 HTMLParser。
# Python2 import HTMLParser >>> HTMLParser().unescape('param=p1&param=p2') 'param=p1¶m=p2'
Python3 HTMLParser 模組遷移到了 html.parser
# Python3 >>> from html.parser import HTMLParser >>> HTMLParser().unescape('param=p1&param=p2') 'param=p1¶m=p2'
到 python3.4 以後的版本,在 html 模組新增了 unescape 方法。
# Python3.4 >>> import html >>> html.unescape('param=p1&param=p2') 'param=p1¶m=p2'
推薦最後一種寫法,因為 HTMLParser.unescape 方法在 Python3.4 就已經被廢棄掉不推薦使用了,意味著之後的版本會被徹底移除。
另外,xml的sax模組也有支援反轉義的函式
>>> from xml.sax.saxutils import unescape >>> unescape('param=p1&param=p2') 'param=p1¶m=p2'