2012-05-31 112 views
0

HTMLParser.unescape行爲就像這個確切的符號:獲取使用的HTMLParser

>>> import HTMLParser 
>>> h= HTMLParser.HTMLParser() 
>>> h.unescape('alpha < β') 
u'alpha < \u03b2' 

我應該怎麼做才能得到確切的beta符號代替\u03b2

感謝

回答

2

\u03b2 「的確切beta符號」。

你必須學會​​區分事物和事物的表示。

您的字符串由小寫字母a,小寫字母l,小寫字母p,小寫字母h,小寫字母a,空格,左尖括號,空格和測試版組成。

u'...'序列是一個字符串的表示形式。它顯示你一個可能的字符序列,你可以鍵入一個Python源文件爲了表達該字符串的概念。 u'foo'是字符串foou'\x66\x6f\x6f'也是如此。所以是u'\u0066\u006f\u006f'。當你要求Python顯示其中任何一個的表示時,它將顯示u'foo',因爲這是Python認爲是該字符串最簡單的表示形式。

當你打印u'\u0066\u006f\u006f',你會看到foo,沒有u前綴和無報價 - 因爲現在你要求而不是源代碼表示了文本表示。您可以使用程序中的字符串:print h.unescape('alpha &lt; &beta;')如果您的終端目前能夠顯示β,您應該看到alpha < β。如果沒有,你通常會得到一個UnicodeEncodeError,因爲Python試圖向你的終端發送一個字節的字符表示(使用某種字符串編碼將字符轉換爲字節),並且編碼是' t旨在處理β。對於問題,請參閱Python, Unicode, and the Windows console