我想将一个XML文件读入python,但是里面有很多表情符号,看来python有一个问题。我花了三天时间在谷歌上搜索这个问题,但找不到答案。
这是我的 XML 文件的一个片段:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- File Created By Signal -->
<smses count="1">
<sms protocol="0" address="+49 0000 00000" date="1456340389816" type="2" subject="null" body="Party! ��" toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" />
</smses>
这就是我的代码的样子:
import xml.dom.minidom as dom
file = '/Users/...'
xmldoc = dom.parse(file)
itemlist = xmldoc.getElementsByTagName('sms')
print(len(itemlist))
for s in itemlist:
print(s.attributes['body'].value)
它适用于没有表情符号的 XML 文件。但对于上面的示例,它在读取文件时已在第 4 行失败。因此,我在 Visual Studio 中打开 XML 文件,它告诉我 和
(应该表示 🎉)是无效字符。当我用
🎉
替换这两个字符时,它是 🎉 的 HTML 实体(十进制),XML 文件看起来没问题,但 python 仍然无法读取它。有谁知道如何运行这个脚本吗?
最佳答案
您需要将这些 和
更改为 Python 可以理解的格式。这些都是 Unicode 字符,这里是 XML unicode 解释的链接:https://www.w3.org/TR/unicode-xml/ 。对于 Python,这些字符将为
\u5536
和 \u57225
。这是一篇关于 Unicode 和 Python 的文章:How to print Unicode character in Python? .
关于python - 使用 python 在 XML 文件中编码表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45243356/