Я пишу приложение rss reader для Android, и теперь мне нужно знать, что такое кодировка xml, прежде чем начать его разбор (windows-1251 или utf-8). Это описано в заголовке объявления xml, то есть <?xml version="1.0" encoding="UTF-8"?>
. Как я могу получить этот заголовок перед разбором? Я использую android.sax реализацию сакса-парсера и передаю кодировку в качестве строкового параметра InputStreamReader. Я нашел связанный с этим вопрос: SAX Parser doesn't recognize windows-1255 encoding - но решение для преобразования cp-1251 в utf-8, которое слишком громоздко и требует ресурсов. Я думаю, что должно быть лучшее решение, так как мне нужно знать только значение кодировки из заголовка <?xml version="1.0" encoding="UTF-8"?>
. Но я не могу получить этот заголовок из xml, синтаксический анализатор начинается с тега <rss>
. Как мне это получить?Как получить заголовок объявления XML? Android
0
A
ответ
0
Я бы рекомендовал перейти на официально поддерживаемый Android xmlPullParser, и проблема с поддержкой кодирования должна исчезнуть.
Это Android doc на нем.
Не думай легкомысленно это как SAX парсер не работает в Android v3.0 +
+0
Спасибо, может быть, я перейду к нему позже. – Cass
0
Ну, вопрос был довольно очевиден :) Вот код, который работал, основываясь на комментарий сквонк в:
byte[] data = new byte[50];
try{
bs.mark(60);
bs.read(data, 0, data.length);
String value = new String(data,"UTF-8");
if(value.toLowerCase().contains("utf-8"))
return "UTF-8";
else if(value.contains("1251"))
return "windows-1251";
} catch (IOException e) {
Log.d("debug", "Exception: " + e);
return "XML not found";
}
Затем просто перезагрузите bs (BufferedInputStream) и работайте с ним в любой необходимой кодировке.
Смежные вопросы
- 1. Как установить заголовок в xml android?
- 2. Android-Как получить Inneractive объявления для работы?
- 3. Android Beginner: Объявления в нижней части XML
- 4. Получить объявления XML на своих собственных линий
- 5. Android, как рекламировать объявления и объявления бесплатно
- 6. Как получить тип объявления объявления из выражения?
- 7. Синтаксический XML в Android без объявления XML с помощью SAX
- 8. Как читать заголовок XML
- 9. HTMLPurifier без объявления XML
- 10. Как создать изображение без объявления его в xml-файле android
- 11. Android Google+ SignInButton. Как установить размер атрибут объявления в XML
- 12. Как отображать объявления Google на Android только с использованием XML?
- 13. Ошибка объявления разметки XML
- 14. Заголовок раздела с использованием Android XML?
- 15. Android: размещение объявления admob
- 16. Объявления Android-приложение
- 17. Как IE8 обрабатывает заголовок xml
- 18. Заголовок включен, но объявления все еще отсутствуют?
- 19. Как опустить объявления xml при использовании XElement.Save?
- 20. как выполнить подзапрос без объявления XML?
- 21. XmlSerializer, вставляющий 2 объявления xml
- 22. Сделать настройки android - Объявления
- 23. получить случайные объявления не просмотрел объявления
- 24. LINQ для объявления типа XML
- 25. Объявления Admob не показываются - Android
- 26. Livecode Интерактивные объявления Android
- 27. Учет статуса объявления Android
- 28. Как получить заголовок страницы html
- 29. Объявление межстраничного объявления Android
- 30. Как обнаружить объявления Bluetooth LE на Android
** «Как я могу получить этот заголовок перед разбором?» ** - Откройте XML-файл в виде текстового файла и прочитайте первую строку и проверьте «encoding =« UTF-8 »« возможно »? Просто мысль. – Squonk
Это очевидный и правильный ответ на проблему. По какой-то причине я искал что-то более сложное :) – Cass