2012-06-06 48 views
0

我有一個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報告包含字符'ä',但似乎無法讓它以達到此目的的方式進行編碼。

我可能錯過了一些明顯的編碼/解碼點,但已用這種掙扎多的一天,所以任何幫助表示讚賞:)

回答