Как создать строку Unicode из Bytearray - PullRequest
0 голосов
/ 17 апреля 2019

Я должен сохранить некоторые строки, содержащие локализованные значения, в байтовом массиве.

Затем мне нужно восстановить строки из байтового массива

Я кодирую строку в байтовый массив следующим образом:

        byte addr = 0x08;
        for (String s : values) {
            char[] dataBytes = s.toCharArray();
            int length = s.length();
            for (int i = 0; i < 4; i++) {
                byte[] buffer = new byte[4];
                for (int j = 0; j < 4; j++) {
                    if(i * 4 + j < length ) {
                        buffer[j] = (byte) Character.codePointAt(dataBytes, i * 4 + j);
                    } else {
                        buffer[j] = (byte) 0;
                    }
                }
                nfcHandler.write(buffer, addr);
                addr++;
                TimeUnit.MILLISECONDS.sleep(10);
            }
        }

Как восстановить строку?Я пробовал

new String(bytes, StandardCharsets.UTF_8);

и

bytes.toString(); 

, но ни один из них не работает.

Есть идеи, как это сделать?

Пожалуйста, помогите ..!!!

1 Ответ

0 голосов
/ 18 апреля 2019

Способ декодирования байтового массива в String хорошо, но вы выполняете слишком много работы на стороне кодирования.Вместо этого используйте метод String.getBytes():

byte[] buffer = s.getBytes(StandardCharsets.UTF_8);
// use buffer at needed...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...