将数字字符引用表示法转换为Unicode字符串

8

有没有一种标准的方法(最好是符合Python风格的),可以将 &#xxxx; 符号转换为正确的Unicode字符串?

例如:

מפגשי

Should be converted to:

מפגשי

可以使用字符串操作轻松完成,但我想知道是否有标准库可用。

提示:那种符号被称为“数字字符引用”。 - Joachim Sauer
相关链接:https://dev59.com/SFHTa4cB1Zd3GeqPOAYY - Ashwini Chaudhary
可能是 https://dev59.com/DHRB5IYBdhLWcg3wUFvB 的重复问题。 - Jared
@AshwiniChaudhary:那个是关于一个非常特定的情况(UTF-16代码点编码为字符),Jared:那个是关于命名字符引用的(答案可能仍然适用,但我不知道)。 - Joachim Sauer
1个回答

10

使用HTMLParser.HTMLParser()

>>> from HTMLParser import HTMLParser
>>> h = HTMLParser()
>>> s = "מפגשי"
>>> print h.unescape(s)
מפגשי

这也是Python的标准库的一部分。


然而,如果你使用的是Python3,你需要从html.parser这个模块导入:

>>> from html.parser import HTMLParser
>>> h = HTMLParser()
>>> s = 'מפגשי'
>>> print(h.unescape(s))
מפגשי

unescape 似乎是内部且未记录的。是否有“官方”的方法? - georg
@thg435 我不知道,抱歉。 - TerryA
我也没找到。这有点糟糕,不是吗? - georg
1
似乎自Python 3.4以来,使用html.unescape(s)现在有了官方方法。 - tlwhitec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接