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