Android Java: парсинг значений кириллицей из XML без UTF-8

XML-файл начинается с

<rss version = "2.0"
 xmlns:content = "http://purl.org/rss/1.0/modules/content/"
 xmlns:wfw = "http://wellformedweb.org/CommentAPI/"
 xmlns:dc = "http://purl.org/dc/elements/1.1/"
 xmlns:atom = "http://www.w3.org/2005/Atom"
 xmlns:sy = "http://purl.org/rss/1.0/modules/syndication/"
 xmlns:slash = "http://purl.org/rss/1.0/modules/slash/">

<channel>
    <title>

Я заметил, что UTF-8 отсутствует, если не ошибаюсь

<?xml version = "1.0" encoding = "UTF-8"?>

Когда я пытаюсь разобрать значения с кириллическими символами из XML-файла, я получаю что-то вроде

<description><![CDATA[���� ���������������� ���� ��������������, ������ �������������� ���������� ���������� ���� ������������������, �������������� �� ���������������� ������������ ���������������� ���� ���������������������� �������������� �� ����������������.

     �������� ������ ����������������...]]>

Спасибо за помощь. Кстати, я анализирую XML с помощью Jsoup, используя метод Parse.xmlParser (класс / парсер).

Вы должны использовать кодировку, в которой был создан документ. Возможно, вы получаете эту информацию через заголовок HTTP-ответа Content-Type. Для успешного общения вы должны иметь возможность следить за тем, что делает отправитель.

Tom Blodget 30.07.2018 00:36

вот ссылка на исходный код xml: nezavisen.mk/mk/rss.xml

Trajce Arsovski 30.07.2018 11:35

могу ли я как-то закодировать кириллицу после преобразования xml-кода в строку, потому что кодировка в xml-файле отсутствует

Trajce Arsovski 30.07.2018 12:11

«после того, как я конвертирую xml-код в строку»: нет, вы не можете преобразовать байты в строку, не зная кодировки. Это основа любого текстового общения. Однако в определенных контекстах, особенно для четко определенных языков, в спецификации указывается, как можно определить кодировку. Для XML это включает попытку прочитать инструкцию обработки XML (если она есть), чтобы узнать, объявляется ли кодировка. В спецификации есть и другие положения. Но зачем ты это делаешь? Должно быть доступно сотня библиотек. Пожалуйста, покажите свой код.

Tom Blodget 30.07.2018 12:31

Я использовал Ion для извлечения содержимого XML-файла, а затем для отправки в виде строкового значения в Jsoup (метод Jsoup.parse, как я упоминал ранее). Итак, я исправил проблему с открытой xml-ссылкой с помощью метода Jsoup.connect. Я обнаружил, что использование Ion для извлечения содержимого, а затем использование метода jsoup.parse немного быстрее, чем извлечение содержимого напрямую с помощью Jsoup. Разве это не странно? Спасибо вам, ребята.

Trajce Arsovski 31.07.2018 08:46
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
279
0

Другие вопросы по теме