Страница 1 из 1

XML encoding

Добавлено: 05 июл 2012, 18:06
rezak90
В общем проблема в кодировках в xml-файле. Приложение качает xml но кодировка в нём может быть любой. Как прочитать вот этот кусок xml'а:
<?xml version="1.0" encoding="windows-1251"?>
а именно атрибут encoding, пользуюсь dom парсером. SAX парсером можно распарсить этот кусок, но это затруднит работу всего приложение. В общем у кого какие идеи?

Re: XML encoding

Добавлено: 05 июл 2012, 18:09
rezak90
вроде нашёл решение тута http://www.javatalks.ru/ftopic25331.php ... l+encoding завтра его проверю, если кто то до завтра даст ответ то от меня спасибо =)

Re: XML encoding

Добавлено: 06 июл 2012, 10:24
rezak90
что то помогло но частично:

Код: Выделить всё

InputSource is = new InputSource(new StringReader(content));
is.setEncoding(is.getEncoding());
builder = factory.newDocumentBuilder();
doc = builder.parse(is);
более половины xml-документов читает нормально, но не 100%.

Re: XML encoding

Добавлено: 09 июл 2012, 11:23
rezak90
никто не откликается -(
Возник ещё такой вопрос: качаю xml, распарсиваю, там кадировка windows-1251, делаю setEncoding("windows-1251"), для уверенности пишу в лог getEncoding - возврящает windows-1251, но в TextView отображаются иэроглифы, и даже если укажу UTF-8, как с этим быть? С xml которые парсятся в UTF-8 проблем нету, а с windows-1251 одни иэроглифы.

Re: XML encoding

Добавлено: 11 июл 2012, 10:38
jedi.kriks
rezak90 писал(а):никто не откликается -(
Возник ещё такой вопрос: качаю xml, распарсиваю, там кадировка windows-1251, делаю setEncoding("windows-1251"), для уверенности пишу в лог getEncoding - возврящает windows-1251, но в TextView отображаются иэроглифы, и даже если укажу UTF-8, как с этим быть? С xml которые парсятся в UTF-8 проблем нету, а с windows-1251 одни иэроглифы.
Вполне возможен вариант, что у Вас все проходит правильно, просто контент отображается не в правильных кодировках. И покажите пожалуйтста пример XML и символами, которые парсятся в неправильной кодировке у Вас.

Re: XML encoding

Добавлено: 28 дек 2015, 10:28
math64
rezak90 писал(а):В общем проблема в кодировках в xml-файле. Приложение качает xml но кодировка в нём может быть любой. Как прочитать вот этот кусок xml'а:
<?xml version="1.0" encoding="windows-1251"?>
а именно атрибут encoding, пользуюсь dom парсером. SAX парсером можно распарсить этот кусок, но это затруднит работу всего приложение. В общем у кого какие идеи?
Ну как Вы собираетесь парсить саксом? Если бы это было бы возможно, можно было бы начать парсить саксом до определения кодировки. отстановить парсинг и начать парсинг домом, зная кодировку.
Но сакс не отчитывается о чтении заголовка:
A SAX parser must never report an XML declaration
Кроме того, автоматическое определение кодировки при разборе саксом работает в обычной яве, но не в андроиде: http://forum.vingrad.ru/forum/topic-386130.html