我有一個SharePoint庫,用於捕獲用戶輸入的XML數據。此表單編碼爲UTF-8,但用戶輸入的某些字符不是ASCII(例如法語,西班牙語和毛利語中的單詞),並且不會保存爲UTF-8。如何在其他編碼中使用Python編寫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(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)
當我看到數據,我看到來自標籤的文本已經轉換與「\ XE4」轉換爲Unicode的地方'ä':u'Te whakaako i Te Reo M\xe4ori -- Teaching Te Reo M\xe4ori'
。
我希望能夠讓我的Excel報告包含字符'ä',但似乎無法讓它以達到此目的的方式進行編碼。
我可能錯過了一些明顯的編碼/解碼點,但已用這種掙扎多的一天,所以任何幫助表示讚賞:)