HTMLParser.unescape
行爲就像這個確切的符號:獲取使用的HTMLParser
>>> import HTMLParser
>>> h= HTMLParser.HTMLParser()
>>> h.unescape('alpha < β')
u'alpha < \u03b2'
我應該怎麼做才能得到確切的beta
符號代替\u03b2
?
感謝
HTMLParser.unescape
行爲就像這個確切的符號:獲取使用的HTMLParser
>>> import HTMLParser
>>> h= HTMLParser.HTMLParser()
>>> h.unescape('alpha < β')
u'alpha < \u03b2'
我應該怎麼做才能得到確切的beta
符號代替\u03b2
?
感謝
\u03b2
是 「的確切beta
符號」。
你必須學會區分事物和事物的表示。
您的字符串由小寫字母a,小寫字母l,小寫字母p,小寫字母h,小寫字母a,空格,左尖括號,空格和測試版組成。
u'...'
序列是一個字符串的表示形式。它顯示你一個可能的字符序列,你可以鍵入一個Python源文件爲了表達該字符串的概念。 u'foo'
是字符串foo
。 u'\x66\x6f\x6f'
也是如此。所以是u'\u0066\u006f\u006f'
。當你要求Python顯示其中任何一個的表示時,它將顯示u'foo'
,因爲這是Python認爲是該字符串最簡單的表示形式。
當你打印u'\u0066\u006f\u006f'
,你會看到foo
,沒有u
前綴和無報價 - 因爲現在你要求而不是源代碼表示了文本表示。您可以使用程序中的字符串:print h.unescape('alpha < β')
和如果您的終端目前能夠顯示β
,您應該看到alpha < β
。如果沒有,你通常會得到一個UnicodeEncodeError,因爲Python試圖向你的終端發送一個字節的字符表示(使用某種字符串編碼將字符轉換爲字節),並且編碼是' t旨在處理β
。對於即問題,請參閱Python, Unicode, and the Windows console