HTMLParser.unescape
表现得像这样:
>>> import HTMLParser
>>> h= HTMLParser.HTMLParser()
>>> h.unescape('alpha < β')
u'alpha < \u03b2'
如何获取确切的beta
符号而不是\u03b2
?
由于
答案 0 :(得分:2)
\u03b2
“确切的beta
符号”。
你必须学会区分事物和事物的表现。
您的字符串由小写字母a,小写字母l,小写字母p,小写字母h,小写字母a,空格,左尖括号,空格和beta组成。
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会尝试将字符串的 byte 表示发送到您的终端(使用某种字符串编码将字符转换为字节),并且编码不是为处理β
而设计的。对于 问题,请参阅Python, Unicode, and the Windows console