YungSherman
@YungSherman
Личинка программиста

Как решить проблему с кодировкой в jsoup?

В своём приложении я парсю контент с html-страницы с помощью библиотеки jsoup, ссылка на эту страницу состоит из русских и латинских символов(символы на кириллице как параметр get-запроса). Проблема в том, что jsoup не видит кириллическую часть ссылки и контент не парсится. При выводе полной ссылки в лог ссылка отображается так:e085387b616c4f2086b6c0b995042216.PNG
Попробовал изменить кодировку кириллической части с помощью URLEncoder (в utf-8), вместо кириллицы теперь появляются проценты и цифры. Ссылка в логе открывается через браузер компьютера нормально, но парсинг по прежнему не происходит. Я не могу понять в чём дело.
private String mCurrentGroup; 
    private final String mLink = "http://mai.ru/education/schedule/detail.php?group=";
    private String mWeek = "1";
    private final String PLUS_WEEK = "&week=";
    mCurrentGroup = mSharedPreferences.getString(getString(R.string.pref_group), ""); //получаем кириллический параметр get-запроса
//"собираем полную ссылку и меняем кодировку у кириллической части, подключаемся
doc = Jsoup.connect(mLink.concat(URLEncoder.encode(mCurrentGroup, "utf-8")).concat(PLUS_WEEK).concat(mWeek)).get();

Самое странное. что до некоторого момента всё работало нормально, даже без изменения кодировки, то есть сам алгоритм получения контента со страницы работает нормально, jsoup теперь не может подключиться к странице.
  • Вопрос задан
  • 702 просмотра
Пригласить эксперта
Ответы на вопрос 1
@mr_serg77
Покажите ошибки.
Пользуйте Retrofit + Scalars converter, из него response body в Jsoup Document или куда там надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы