Проблема с русскими символами в jsoup

496
04 мая 2017, 12:54

Делаю вот там

 final String url = "https://yandex.com/images/search?text=";
        final String charset = "utf-8";
        try {
            String wordParam = URLEncoder.encode(strings[0], charset);
            Document docImage = Jsoup.connect(url + wordParam+"&isize=large").get();
            Elements images = docImage.select("img.serp-item__thumb");
            Elements links = docImage.select("div.serp-item");

Если strings[0] состоит из русских символов, то результат выдаёт какую-то ерунду. Если же полученный URL скопировать в браузер, то всё ок. Опытным путём установил, что в случае русских символов в начало каждого символа добавляется %2525. Что делать?

Answer 1

Типичная ошибка в такого рода изысканиях состоит в том, что когда вы задаете русский текст в самом исходнике, то кодировка русского текста совпадает с кодировкой самих исходников. Вообще рекомендуемая кодировка исходников это UTF-8 (для Android это вообще обязательное требование) - настройка кодировки исходников зависит от IDE, в котором вы работаете. Для Android Studio это задается так:

File -> Other Settings -> Default Settings->File Encodings->change Project Encoding->UTF-8

Поэтому ваш перл:

Если strings[0] состоит из русских символов, то результат выдаёт какую-то ерунду.

не имеет смысла, без указания кодировки русских символов.

Answer 2

нужно было убрать encode и сделать yandex.ru

READ ALSO
Что внутри конструктора по умолчанию?

Что внутри конструктора по умолчанию?

Допустим если мы объявим конструктор, то он будет возвращать нам некоторую информацию, и мы будем знать какую, а если этого не делать?

314
DateTimeException: Conflict found

DateTimeException: Conflict found

ЗдравствуйтеИмеется такой форматор:

235
Как узнать глубину стека depth при падении ObjectOutputStream?

Как узнать глубину стека depth при падении ObjectOutputStream?

Как узнать глубину стека depth при падении ObjectOutputStream?

250
преобразование map Scala в Java

преобразование map Scala в Java

есть такой метод на scala:

251