ilyubayev
@ilyubayev
Software Engineer

Как преобразовать кодировку строки в стандартную?

Привет!
Я парсю html-страницу c помощью Jsoup, которая закодирована в windows-1251(об этом говорит тег на самой странице).
Проблема в том, что когда я преобразую спаренный участок кода в строку, а после пытаюсь вызвать String.contains("виды"), то он возвращает мне false, хотя такая подстрока в ней существует.
Опытным путем я понял, что слово "виды" в байтовом представлении имеет вид {-30, -24, -28, -5}
Как быть?
Код:
Document page = Jsoup.connect(URL + urlShop)
                .timeout(20000)
                .get(); //получаем html-страницу
        Elements row = page.select("div.comp"); //выбираем div с классом comp из страницы
        String print = row.text(); //удаляем все теги и преобразуем код в текст
        
        System.out.println(print.contains("виды")); // возвращает false

        String regex = new String(new byte[]{-30, -24, -28, -5});
        System.out.println(print.contains(regex)); //возвращает true
  • Вопрос задан
  • 662 просмотра
Решения вопроса 2
@onepavel
Консультация и разработка мобильных приложений
А у вас в коде слово "виды" тоже в windows-1251 ?
Ответ написан
ilyubayev
@ilyubayev Автор вопроса
Software Engineer
Скорее всего, проблему вызвала сама IDE - в моем случае это Intellij IDEA.
В нижнем левом углу можно указать непосредственно кодировку кода. Я сменил ее на UTF-8 и все заработало! До этого была windows-1251.
Кодировку исходной строки не менял.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы