我正在尝试解析一个包含 - 和&#8217数字字符引用的xml。在解析它时,我输出为“?”。不仅仅是这两个,xml中的任何HTML / XMl数字字符引用都会产生此问题。只有预先定义的实体才被saxparser
接受我使用defaulthandler saxparser。 system out in character方法向我显示了数字字符引用的问号。
我做了大量的谷歌搜索,到处都看到使用数字字符引用不应该造成任何问题。
任何帮助?
答案 0 :(得分:0)
System.out
向我显示数字字符引用的问号。
这听起来像是输出/控制台的字符编码问题。 以下适用于JSE 7
public static void main(String [] args)throws Exception { SAXParser解析器= 。SAXParserFactory.newInstance()newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setContentHandler(new ContentHandler() {
// other methods omitted
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
System.out.println(new String(ch, start, length));
}
});
FileReader fReader = new FileReader("/tmp/HelloWorld.xml");
reader.parse(new InputSource(fReader));
fReader.close();
}
使用XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<Test>
Hello World’
</Test>
输出:Hello World'
您是否尝试使用调试器查看incomming字符数组?