2012-06-12 155 views
3

Possible Duplicate:
Replace html entities with the corresponding utf-8 characters in Python 2.6
What's the easiest way to escape HTML in Python?蟒蛇:轉換爲HTML特殊字符

有一種方法可以輕鬆地將字符串轉換爲HTML字符串,例如 與字符如<,>&lt;&gt; 或將我必須寫我自己的轉換程序?

+1

請參閱http:// doc s.python.org/library/htmllib.html#module-htmlentitydefs –

+0

@TimPietzcker:oops ...標題並沒有真正的幫助;-) – vartec

+1

我認爲你需要的是所謂的「HTML轉義」。這就是爲什麼你沒有自己找到答案。 [這裏是一個Stackoverflow的答案。](http://stackoverflow.com/questions/1061697/whats-the-easiest-way-to-escape-html-in-python) – tsikov

回答

12

如果你只關注關鍵特殊字符,如&<>

>>> import cgi 
>>> cgi.escape("<hello&goodbye>") 
'&lt;hello&amp;goodbye&gt;' 

對於其他非ASCII字符:

>>> "Übeltäter".encode("ascii", "xmlcharrefreplace") 
b'&#220;belt&#228;ter' 

當然,如果需要,可以結合兩者:

>>> cgi.escape("<Übeltäter>").encode("ascii", "xmlcharrefreplace") 
b'&lt;&#220;belt&#228;ter&gt;' 
+0

>>> >>>「Übeltäter」.encode( 「ascii」,「xmlcharrefreplace」)'結果爲 'UnicodeDecodeError:'ascii'編解碼器無法解碼0位的字節0xc3:序號不在範圍內(128) – brandones