我的目标是编写一个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