我正在尝试解析来自不同来源的xml文件(我无法控制).其中大多数都是用UTF-8编码的,并且使用以下代码段不会导致任何问题:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
FeedHandler handler = new FeedHandler();
InputSource is = new InputSource(getInputStream());
parser.parse(is, handler);
Run Code Online (Sandbox Code Playgroud)
由于SAX默认为UTF-8,这很好.但是有些文件声明:
<?xml version="1.0" encoding="ISO-8859-1"?>
Run Code Online (Sandbox Code Playgroud)
即使声明ISO-8859-1 SAX仍然默认为UTF-8.只有我添加:
is.setEncoding("ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)
SAX会使用正确的编码吗?
如何在没有专门设置的情况下让SAX自动检测xml声明中的正确编码?我需要这个,因为我事先不知道文件的编码是什么.
艾琳,提前谢谢