Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ElementTree和UnicodeEncodeError:_Python_Python 3.x_Unicode_Elementtree - Fatal编程技术网

Python ElementTree和UnicodeEncodeError:

Python ElementTree和UnicodeEncodeError:,python,python-3.x,unicode,elementtree,Python,Python 3.x,Unicode,Elementtree,我正在处理以下xml文件: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <tag>…</tag> 但不幸的是,我犯了这样一个错误: Traceback (most recent call last): File "main.py", line 48, in <module> print(tree.getroot().text) File "C:\Python33\l

我正在处理以下xml文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<tag>…</tag>
但不幸的是,我犯了这样一个错误:

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>
回溯(最近一次呼叫最后一次):
文件“main.py”,第48行,在
打印(tree.getroot().text)
文件“C:\Python33\lib\encodings\cp852.py”,第19行,编码
返回codecs.charmap\u encode(输入、自身错误、编码\u映射)[0]
UnicodeEncodeError:“charmap”编解码器无法对位置0中的字符“\u2026”进行编码:字符映射到

我做错了什么?

不要打印值。处理它(你更可能要做的事情)会很好

如果您真的想打印它,首先将unicode字符串转换为输出媒体可以处理的内容(例如UTF-8编码字符串)。如果其中有奇怪的字符,您可以使用此选项至少转换其余字符:

byteString = value.encode(sys.stdout.encoding, 'ignore')
originalWithoutTrouble = byteString.decode(sys.stdout.encoding)
print(originalWithoutTrouble)

但是,当然,有些字符可能会丢失(在本例中,正如Martijn指出的那样,省略号

您的控制台编解码器无法处理水平省略号字符。Elementtree做得很好,将XML内容解码为Unicode值也很好
print()
但是需要重新编码字符以匹配控制台编码,并且Windows代码页无法处理此特定字符。
byteString = value.encode(sys.stdout.encoding, 'ignore')
originalWithoutTrouble = byteString.decode(sys.stdout.encoding)
print(originalWithoutTrouble)