Я пытаюсь проанализировать 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