我使用javax.xml.stream.XMLStreamReader
来解析XML文档。不幸的是,我解析的一些文档使用了非IANA编码名称,例如" macroman"和" ms-ansi"。例如:
<?xml version="1.0" encoding="macroman"?>
<foo />
这导致解析爆炸,但异常:
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,42]
Message: Invalid encoding name "macroman".
有没有办法为我的XMLStreamReader
提供自定义编码处理程序,以便我可以通过支持我需要的编码来扩充它?
答案 0 :(得分:0)
您可以用转换器包装输入流,该转换器用XMLStreamReader
可以理解的等效字符集替换非标准字符集。
请参见Filter (search and replace) array of bytes in an InputStream