如何在使用javax.xml.stream.XMLStreamReader时启用非IANA编码

问题描述 投票:8回答:1

我正在使用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提供自定义编码处理程序,以便我可以通过支持我需要的编码来增强它?

java xml-parsing stax
1个回答
0
投票

您可以使用变换器包装输入流,该变换器将XMLStreamReader理解的等效字符集替换为非标准字符集。

Filter (search and replace) array of bytes in an InputStream

© www.soinside.com 2019 - 2024. All rights reserved.