gpt4 book ai didi

python - QXmlStreamReader 引发 UnicodeEncodeError

转载 作者:太空宇宙 更新时间:2023-11-03 14:59:45 31 4
gpt4 key购买 nike

在我的系统上,一段适用于 Python 2 的代码不适用于 Python 3。

f = open("plotwidget.svg")
svgData = f.read()
xml_stream = QtCore.QXmlStreamReader(svgData)

这会引发以下错误:

UnicodeEncodeError 'latin-1' codec can't encode character '\u2212' in position 12688: ordinal not in range(256)

该字符确实不是 ASCII 字符,但我不明白为什么 QXmlStreamReader 期望在文件似乎是正确的情况下找到 latin-1 编码UTF-8 文件,其编码在 header 中指定。

SVG 文件是使用 matplotlib 生成的(figure.savefig(...))。

最佳答案

该问题是因为构造函数需要字节而不是字符串而引起的,解决方案是使用encode()

xml_stream = QtCore.QXmlStreamReader(svgData.encode())

关于python - QXmlStreamReader 引发 UnicodeEncodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45207989/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com