Я использую синтаксический анализатор stax для чтения XML-файла внутри обычного api в моем приложении. Апи принимает InputStream в качестве параметра, и я делаю что-то вроде нижеПарсер Stax не умеет читать файлы с кодировкой UTF-16
public Object <commonApi>(InputStream is)
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventReader reader = inputFactory.createXMLEventReader(is);
try{
while (parser.hasNext()) {
XMLEvent event = parser.nextEvent();
// reaming parsing logic
}
} Catch (Exception e){
e.printStackTrace();
}
}
вопрос это работает, если кодировка в файле XML является UTF-8. Если это UTF-16, то он не читает properly..gives за исключением следующего
javax.xml.stream.XMLStreamException: ParseError в [строка, столбец]: [1,41] сообщение: Содержание не доступно в прологе.
Я не могу изменить подпись общей ави. Мне нужно работать на входном потоке .. любые предложения?
Мой код должен работать для UTF-8 и UTF-16 или любой другой действующей кодировки. Итак, мне нужен общий способ, который работает – user2349699
@ user2349699: Невозможно. См. Http://stackoverflow.com/a/14196597/309483 –