我有一个SharePoint库,用于将用户输入的数据捕获为XML表单。此表单编码为UTF-8,但用户输入的某些字符不是ASCII(例如法语,西班牙语,毛利语中的单词),并且不会保存为UTF-8。
以下是此类数据的示例(缩写为sans元数据):
<?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中的parse函数(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报告包含字符'ä',但似乎无法以实现此目的的方式进行编码。
我可能错过了一些明显的编码/解码点,但在一天中的大部分时间都在努力解决这个问题,所以任何帮助都会受到赞赏:)