0

HTMLParser.unescape行为如下:

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

我应该怎么做才能得到确切的beta符号而不是\u03b2

谢谢

4

1 回答 1

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 &lt; &beta;')如果您的终端当前能够显示β,您应该会看到alpha < β。如果没有,您通常会收到 UnicodeEncodeError,因为 Python 尝试将字符串的字节表示形式发送到您的终端(使用某种字符串编码将字符转换为字节),并且编码不是经过设计的处理β。对于问题,请参阅Python、Unicode 和 Windows 控制台

于 2012-05-31T03:49:11.053 回答