python - 使用 python 在 XML 文件中编码表情符号

标签 python xml encoding

我想将一个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! &#55356;&#57225;" 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/

相关文章:

java | XML 按大小分割 | HashMap 性能问题 | OOM 堆空间错误

c++ - 通过 C++ main char** args 处理不同字符串编码的正确方法是什么?

python - Python程序验证

java - 找不到符号方法 INFLATE ,android studio

java - 从 Java 中的 XML 中删除命名空间

java - 将整数编码为字节字符串

javascript - nodejs pbkdf2sync 不是缓冲区错误

python - 使用 BeautifulSoup 搜索具有多个空格和通配符的类标签

python - 如何在python脚本中从youtube-dl中提取文件大小?

c++ - 从 C++ 解析 Python 代码