XML encoding

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

XML encoding

Сообщение rezak90 » 05 июл 2012, 18:06

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: XML encoding

Сообщение rezak90 » 05 июл 2012, 18:09

вроде нашёл решение тута http://www.javatalks.ru/ftopic25331.php ... l+encoding завтра его проверю, если кто то до завтра даст ответ то от меня спасибо =)
R.id.team
Политика на форуме запрещена

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: XML encoding

Сообщение rezak90 » 06 июл 2012, 10:24

что то помогло но частично:

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

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: XML encoding

Сообщение rezak90 » 09 июл 2012, 11:23

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

jedi.kriks
Сообщения: 3
Зарегистрирован: 05 июл 2012, 12:49

Re: XML encoding

Сообщение jedi.kriks » 11 июл 2012, 10:38

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

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: XML encoding

Сообщение math64 » 28 дек 2015, 10:28

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

Ответить