Массив байтов в строку с русскими символами

Рейтинг: 1Ответов: 1Опубликовано: 18.01.2015

Есть изначально какая-то строка с русскими символами, к примеру:

String str = "тест";

Получаем массив байтов:

byte[] arr = str.getBytes()

Так вот, если посмотрим на получившийся массив, там будут вместо стандартных ASCII кодов отрицательные числа, т.к. байт от -128 до 127.

И вопрос: как, имея эти отрицательные числа, получить ту же строку с русскими символами? Так как при переводе обычным String(arr) получаем из отрицательных неверные значения (�).

Спасибо.

Ответы

▲ 4Принят

Используйте указание кодировки при конвертации строк в байты и обратно. Например:

byte[] arr =str.getBytes("UTF-8");

и соответственно

String str = new String(arr, "UTF-8");