我在编写的脚本中遇到了 unicode 问题。我已经搜索了互联网,包括这个网站,我尝试了很多东西,但我仍然不知道出了什么问题。
我的代码很长,但我将展示一段摘录:
raw_results = get_raw(args)
write_raw(raw_results)
parsed_results = parse_raw(raw_results)
write_parsed(parsed_results)
基本上,我得到了以 UTF-8 编码的 XML 格式的原始结果。写入 RAW 数据没有问题。但是写入解析的数据是。所以我很确定问题出在解析数据的函数内部。
我尝试了一切,但我不明白问题是什么。即使是这条简单的线也给了我一个错误:
def parse_raw(raw_results)
content = raw_results.replace(u'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', u'')
UnicodeDecodeError:“ascii”编解码器无法解码位置 570 中的字节 0xd7:序数不在范围内(128)
理想情况下,我希望能够使用 unicode 并且没有问题,但我也没有替换/忽略任何 unicode 并仅使用常规文本的问题。我知道我没有提供我的完整代码,但理解这是一个问题,因为它与工作相关。但我希望这足以让我得到一些帮助。
编辑:我的 parse_raw 函数的顶部:
from xml.etree.ElementTree import XML, fromstring, tostring
def parse_raw(raw_results)
raw_results = raw_results.decode("utf-8")
content = raw_results.replace('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>', '')
content = "<root>\n%s\n</root>" % content
mxml = fromstring(content)
Edit2: : 我认为最好指出代码工作正常,除非有特殊字符。当它是 100% 英语时,没问题;每当涉及任何外国字母或重音字母时,就会出现问题。