Я пытаюсь разобрать 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 без специальной настройки? Мне нужно это, потому что я не знаю перед тем, что будет кодировать файл.
Спасибо заранее, Allan