繁体   English   中英

Python将html ascii编码文本转换为utf8

[英]Python convert html ascii encoded text to utf8

我有一个xml文件,我需要将其转换为utf8。 不幸的是,实体包含这样的文字:

/mytext,

我正在使用编解码器库将文件转换为utf8,但html实体将无法使用它。

有没有一种简单的方法来摆脱HTML编码?

谢谢

您可以在将文件文本传递给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>'

最近发布了以下针对类似问题的回复:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM