我有一个以<?xml version="1.0" encoding="iso-8859-2"?>
. 我是这样读的:
SAXParserFactory.newInstance().newSAXParser().parse(is, handler);
其中is
是 InputStream 并且handler
是一些任意处理程序。然后我得到这个异常:
org.apache.harmony.xml.ExpatParser$ParseException: At line 41152, column 17: not well-formed (invalid token)
实际上,该位置有一个度数符号,包含在这样的 CDATA 中:
<![CDATA[something °]]>
使用字符集 iso-8859-2,解析器应该接受几乎任何字符,包括这个字符。情况似乎并非如此。我究竟做错了什么?
编辑
我在安卓上做这一切。
奇怪:解析器似乎完全忽略了编码属性。我将文件转换为 UTF-8,同时保留标题,现在我的程序可以毫无错误地读取它。这是为什么??
(我正在像这样制作 InputStream :new BufferedInputStream(new FileInputStream(filename))
,即没有阅读器,所以这不会是错误。)