Проблема перевода byte[] в String[] или в String. JAVA

164
24 октября 2018, 05:50

Я посылаю запрос на сервер, он мне отправляет String[] или String с помощью byte[]. Моя задача - преобразовать этот массив байтов хоть в что-нибудь читаемое. Пока, что получаю каракули. Пробовал делать через new String(bytes, charset), new String(bytes), Arrays.toString(bytes), но результата нет. Насколько я знаю, с сервера данные приходят в кодировке 1251.

Answer 1

Чтобы преобразовать массив байт в строку нужно знать в какой кодировке они записаны. А потом вызвать конструктор String с указанием нужной кодировки

Charset ch = Charset.forName("windows-1251");
byte[] data = {(byte)0xCF, (byte)0xF0, (byte)0xE8, (byte)0xE2, (byte)0xE5, (byte)0xF2};
String str = new String(data, ch);
System.out.println(str);

Привет

READ ALSO
LiveData постит только последнее значение

LiveData постит только последнее значение

Подписываюсь на LiveData которая находится во ViewModel во фрагменте

168
Ошибка при клике на ListView, почему? [дубликат]

Ошибка при клике на ListView, почему? [дубликат]

На данный вопрос уже ответили:

219
Перерисовка изображения при нажатии JButton

Перерисовка изображения при нажатии JButton

Хочу, чтобы при нажатии кнопки "UP" аймэдж "gena" стирался и появлялся в новом месте - то есть x = x + 100Но при нажатии кнопки ничего не происходит

174
Не удается изменить конструктор через javaagent

Не удается изменить конструктор через javaagent

Есть javaagent со следующим ClassFileTransformer:

154