将数据写入xml文件时出现UnicodeEncodeError

Bob*_*bby 2 python xml encoding

我的目标是编写一个XML文件,其中包含少量标签,其值为区域语言.我正在使用Python来执行此操作并使用IDLE(Pythong GUI)进行编程.

当我尝试在xmls文件中编写单词时,它会出现以下错误:

UnicodeEncodeError:'ascii'编解码器无法编码位置0-4中的字符:序数不在范围内(128)

现在,我没有使用任何xml编写器库; 相反,我打开一个文件"test.xml"并将数据写入其中.该行遇到此错误: f.write(data) 如果我用print语句替换上面的write语句,那么它会在Python shell上正确打印数据.

我正在读取不是UTF-8,16或32编码格式的Excel文件中的数据.它采用其他一些格式.cp1252正在正确读取数据.

将此数据写入XML文件的任何帮助都将受到高度赞赏.

Ale*_*lli 6

您应该.decode在传入cp1252时获取Unicode字符串,并.encodeutf-8您编写时将它们(到目前为止是XML的首选编码),即

f.write(unicodedata.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

在传入的字节串中unicodedata获得的位置.decode('cp1252').

可以通过使用codecs标准Python库的模块打开输入和输出文件,并使用适当的编码来代替普通文件,从而可以将唇膏放在上面open,但我展示的是底层机制(并且它经常,但并非总是如此,更直接,更直接地应用它,而不是间接地通过codecs- 风格和品味的问题).

什么事情是总的原则:翻译您输入的字符串尽快你可以在你获得它们之后UNICODE,使用整个处理unicode的,在后期,你可以只是之前他们输出他们回到字节字符串翻译.这给你最简单,最直接的生活! - )