Python 将 HTML ASCII 编码的文本转换为 UTF-8

3

我有一个xml文件,需要转换为utf8编码。不幸的是,该实体包含如下文本:

/mytext,

我正在使用编解码库将文件转换为UTF8格式,但是HTML实体无法与其配合使用。
是否有一种简单的方法来消除HTML编码?
谢谢。

https://dev59.com/tnVD5IYBdhLWcg3wQZQg - kechap
你能否先将原始文件通过unescape进行传递吗? - jterrace
2个回答

3
你可以在将文件文本传递给XML解析器之前,通过unescape函数对其进行处理。
或者,如果你只需要解析HTML,lxml的http解析器会为你自动处理。
>>> import lxml.html
>>> html = lxml.html.fromstring("<html><body><p>&#047;mytext&#044;</p></body></html>")
>>> lxml.html.tostring(html)
'<html><body><p>/mytext,</p></body></html>'

1

最近在回答类似问题时发布了以下内容:

import HTMLParser     # html.parser in Python 3
h = HTMLParser.HTMLParser()
h.unescape('&#047;mytext&#044;')

从技术上讲,这种方法是“内部的”和未记录的,但它已经在API中存在了相当长的时间,并且没有标记前导下划线。

在这里找到它;其他方法也被提到,其中BeautifulSoup可能是最好的,如果你不介意它的“沉重”。


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