如何让 SAX 解析器从 xml 声明中确定编码?
2022-09-01 13:20:35
我正在尝试解析来自不同来源的xml文件(我对此几乎没有控制权)。它们中的大多数都以 UTF-8 编码,使用以下代码段不会造成任何问题:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
FeedHandler handler = new FeedHandler();
InputSource is = new InputSource(getInputStream());
parser.parse(is, handler);
由于 SAX 默认为 UTF-8,这很好。然而,一些文件声明:
<?xml version="1.0" encoding="ISO-8859-1"?>
即使 ISO-8859-1 声明为 SAX,它仍然默认为 UTF-8。只有当我添加:
is.setEncoding("ISO-8859-1");
SAX 是否使用正确的编码。
如何让 SAX 自动检测 xml 声明中的正确编码,而无需我专门设置它?我需要这个,因为我事先不知道文件的编码是什么。
提前致谢,艾伦