我正在使用 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
提供自定义编码处理程序,以便我可以通过支持我需要的编码来增强它?
最佳答案
您可以使用转换器包装输入流,将非标准字符集替换为 XMLStreamReader
能够理解的等效字符集。
参见 Filter (search and replace) array of bytes in an InputStream
关于java - 使用 javax.xml.stream.XMLStreamReader 时如何启用非 IANA 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50750765/