我的目標是編寫一個XML文件,其中的值以區域語言表示。我使用Python來做到這一點,並使用IDLE(Pythong GUI)進行編程。將數據寫入xml文件時的UnicodeEncodeError
雖然我儘量把字寫在一個個XML文件,它提供了以下錯誤:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
現在,我沒有使用任何XML作家庫;相反,我打開一個文件「test.xml」並將數據寫入它。該行遇到此錯誤: f.write(data)
如果我用print語句替換上面的write語句,那麼它會在Python shell上正確地打印數據。
我從Excel文件中讀取的數據不是UTF-8,16或32編碼格式。它以其他格式。 cp1252正在正確讀取數據。
任何幫助獲取這個數據寫入XML文件將不勝感激。
感謝您的這種快速回復。 :) 我實際上做了同樣的操作,當我得到錯誤... 文件「C:\ test.py」,第64行,在主 uData = items.decode('cp1252') 文件「C :\ Python26 \ lib \ encodings \ cp1252.py「,第15行解碼 返回codecs.charmap_decode(input,errors,decode_table) UnicodeEncodeError:'ascii'編解碼器無法對0-4位置的字符進行編碼:ordinal not在範圍內(128) 我沒有得到真正的理由爲什麼發生這種情況。可能'cp1252'可能不是將用於解碼的實際格式。在這種情況下我能做些什麼? :( – Bobby 2010-05-10 05:50:47
我們可以關閉這個線程,我的問題解決了,其實我的數據已經是unicode數據了,它不應該被解碼,但是,在XML文件中寫入我使用了下面的代碼來解決我的問題。import cgi dataToWrite = cgi.escape(data).encode(「ascii」,「xmlcharrefreplace」)謝謝你的幫助。 – Bobby 2010-05-10 06:04:30