0

我有一个 SharePoint 库,它将用户输入的数据捕获为 XML 表单。这种形式被编码为 UTF-8,但用户输入的某些字符不是 ASCII(例如来自法语、西班牙语、毛利语的单词)并且不保存为 UTF-8。

这是此类数据的示例(缩写,无元数据):

<?xml version="1.0" encoding="utf-8"?>
<my:myFields xmlns:my="http://schemas.microsoft.com/etc...">
    <my:title>Te whakaako i Te Reo Mäori -- Teaching Te Reo Mäori</my:title>

我正在使用 ElementTree (xml.etree.ElementTree) 中的解析函数将此信息编译为报告,然后将其导出为 CSV 并在 Excel 电子表格中发送。因此,我想将 UTF-8 字符和所有用户输入都转换为适用于 Excel 的单一格式(cp1252?):

import xml.etree.ElementTree as ET
course = ET.parse(os.path.join(path, filename))

当我将所有计算的结果写入文件时,我收到以下错误(对于上面的示例 XML):

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 48: ordinal not in range(128)

当我查看数据时,我看到标签中的文本已转换为 unicode,其中 '\xe4' 代替了 'ä': u'Te whakaako i Te Reo M\xe4ori -- Teaching Te Reo M\xe4ori'

我希望能够让我的 Excel 报告包含字符“ä”,但似乎无法以实现此目的的方式对其进行编码。

我可能会遗漏一些明显的编码/解码点,但一天中的大部分时间都在为此苦苦挣扎,因此感谢您提供任何帮助:)

4

1 回答 1

2

你正在寻找codecs.open().

于 2012-06-06T04:35:59.927 回答