我正在解析这个非常简单的xml文件:
<root>
<shelter>
<adress>21 אחד העם</adress>
<code>א-1</code>
<lon></lon>
<lat></lat>
</shelter>
<shelter>
<adress>13 שלח</adress>
<code>10 - א</code>
<lon></lon>
<lat></lat>
</shelter>
<shelter>
<adress>ביאליק</adress>
<code>11 - א</code>
<lon></lon>
<lat></lat>
</shelter>
<shelter>
<adress>9 מוריה</adress>
<lon></lon>
<lat></lat>
</shelter>
<shelter>
<adress>58 בזל</adress>
<lon></lon>
<lat></lat>
</shelter>
</root>我用了一段简单的代码:
import xml.etree.ElementTree as et
pars = et.XMLParser(encoding='Windows-1255')
tree = et.parse('NewFile.xml',parser=pars)
root = tree.getroot()
for shelter in root.findall('shelter'):
adress = shelter.find('adress').text
print adress我得到了一个错误:“UnicodeEncodeError:'charmap‘编解码器不能编码位置3-5中的字符:字符映射到未定义的字符”
正如您可能知道的,文本是用希伯来语写的,我猜这就是我错误的来源--或者缺乏对“编码”意味着的理解。我查阅了关于解析和编码问题的不同讨论,但没有一个涉及外语处理的问题。
致以问候。
发布于 2014-08-09 15:01:18
在试图运行您的代码时,我没有错误。
问题可能在您的文件的编码。确保它是utf-8。也可以使用encoding="utf-8"。
https://stackoverflow.com/questions/25218872
复制相似问题