@A1994Y

Ответ от сервера в кодировке (u043a\u0430\u043a-\u0442\) как Декодировать?

Совершаю такой запрос:
HttpURLConnection urlConnection = null;

            try {
                urlConnection = (HttpURLConnection) new URL(urlConn).openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.setUseCaches(false);
                urlConnection.connect();

                BufferedReader input = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UNICODE"));
                String line;
                while ((line = input.readLine()) != null){
                         sb.append(line);
                         sb.append("\n");
                }


На выходе вижу нужный тэгu и в нем "043a\u0430\u043a-\u0442\" непонятные символы, я так понял кодировка Unicode, но как получить русский язык вместо символов.
  • Вопрос задан
  • 399 просмотров
Решения вопроса 1
BorLaze
@BorLaze
Java developer
Если воспользоваться https://www.online-toolz.com/tools/text-unicode-en... то видно, что данные представляют из себя "как-т"

Еще один момент - new InputStreamReader(urlConnection.getInputStream(), "UNICODE") - InputStreamReader не знает такой кодировки, как "UNICODE"

Если открыть доку по этому классу, то можно увидеть, что корректное значение charset будет - "UTF-8"

PS: удивительно, но не сработало. Помогает
BufferedReader input = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StandardCharsets.UTF_8));
+
sb.append(StringEscapeUtils.unescapeJava(line));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@X-nautilus
Попробуй задать кодировку строке
line=new String(line = input.readLine(), StandardCharsets.UTF_8)


Думаю поможет
Ответ написан
Ваш ответ на вопрос

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

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