【发布时间】:2011-03-29 18:58:47
【问题描述】:
我正在尝试解析来自不同来源的 xml 文件(对此我几乎无法控制)。它们中的大多数都以 UTF-8 编码,使用以下 sn-p 不会导致任何问题:
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 声明中检测正确的编码,而无需我专门设置它?我需要这个,因为我事先不知道文件的编码是什么。
提前致谢, 艾伦
【问题讨论】:
标签: java xml encoding sax xml-parsing