从文件中读取变音符号并将其插入 XML

Reading diacritical marks from a file and inserting them to an XML

我目前正在尝试从某些文件中读取名称并将它们插入 XML。一切顺利,直到其中一个名称包含变音符号,然后该特定字母作为 \xc4\x82C 或类似名称插入到我的中间字典中。更重要的是,当我尝试从所述词典中插入具有变音符号的单词时,它会发出错误信号:

All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters

所以我不把它 Python 和 XML 当作变音符号。我的文件都包含很多变音符号,我宁愿避免删除它们,因为在我的国家,有些名字只是变音符号不同。

有什么解决办法吗?

据我了解,您将数据从文件加载到 Python 2.7 str。在仅表示为字节的 Python 2.7 中,没有附加信息这些字节实际应该表示什么字符。

您的 XML 工具包拒绝猜测,它只接受 ASCII 字符,其中映射非常清晰(即字节 0-127)。因此,您必须将 str 解码为 unicode 对象:

ustr = data.decode(encoding)

然后您可以将新 ustr 传递给 LXML。要弄清楚您需要哪种编码,您应该查看您的数据。根据您的数据在世界上的来源,我会从一些猜测开始,例如 'latin1''utf-8'。您可以两种都试一下,看看哪个能达到预期的效果。

如果您在 Windows 上开发,最好在 IDLE Python 或另一个 IDE 中进行开发,Windows 控制台在涉及到统一码。