【发布时间】:2018-10-18 09:15:03
【问题描述】:
我正在用 Python 中的 SAX 解析 XML 文件。 XML 是通过 urllib.request 从 HTTP 流中读取的。
XML 流似乎包含无效字符。具体来说,当从 UTF-8 解码并将其转储到文件时,看起来我得到了一堆 '8000' 的实例,前后都是换行符。 这会导致 SAX 解析失败。
我的问题有两个:
- 如何删除或忽略 urllib.request 数据流中出现的无效字符?
- “8000”可能是什么,是否有针对该问题的更具体的解决方法?
[编辑]
我无法共享源数据,但这是字符串和十六进制的前几个字符。第一个字符是有问题的“8000”字符。
字符串:
8000<?xml
十六进制:
38:30:30:30:3c:3f:78:6d:6c:20
“8000”字符串可以搜索替换,但这不是一个好的解决方案,因为数据可能包含相当常见的字符串。
【问题讨论】:
-
你确定它是 UTF-8 的吗?您能否提供原始数据的链接或提供 hexdump?
-
好吧,我想不是 1000% 肯定。我将使用 hexdump 更新问题。
-
那个8000可以是xml字符串长度吗?
-
我在下面添加了自己的答案。似乎 8000 是出于某种原因通过 HTTPResponse 对象写入的端口号。
标签: xml python-3.x sax