HTMLParser.unescape
行为如下:
>>> import HTMLParser
>>> h= HTMLParser.HTMLParser()
>>> h.unescape('alpha < β')
u'alpha < \u03b2'
我应该怎么做才能得到确切的beta
符号而不是\u03b2
?
谢谢
HTMLParser.unescape
行为如下:
>>> import HTMLParser
>>> h= HTMLParser.HTMLParser()
>>> h.unescape('alpha < β')
u'alpha < \u03b2'
我应该怎么做才能得到确切的beta
符号而不是\u03b2
?
谢谢
\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 尝试将字符串的字节表示形式发送到您的终端(使用某种字符串编码将字符转换为字节),并且编码不是经过设计的处理β
。对于该问题,请参阅Python、Unicode 和 Windows 控制台