我正在处理以下xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<tag>…</tag>
就像python文档说的那样:
import xml.etree.cElementTree as ET
tree = ET.parse('file.xml')
print(tree.getroot().text)
但不幸的是我遇到了这样的错误:
Traceback (most recent call last):
File "main.py", line 48, in <module>
print(tree.getroot().text)
File "C:\Python33\lib\encodings\cp852.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2026' in position 0: character maps to <undefined>
我做错了什么?
答案 0 :(得分:2)
不要打印该值。处理它(你更有可能做的事情)将会正常工作。
如果你真的想要打印它,首先将unicode字符串转换为输出媒体可以处理的内容(例如UTF-8编码的字符串)。如果那里有奇怪的字符,你可以使用它来至少转换其余字符:
byteString = value.encode(sys.stdout.encoding, 'ignore')
originalWithoutTrouble = byteString.decode(sys.stdout.encoding)
print(originalWithoutTrouble)
但是当然,然后可能会丢失一些字符(在这种情况下是省略…
,正如Martijn指出的那样)。