Как преобразовать строку, содержащую "+ = �� @ 0���o2E" в короткий массив? - PullRequest
1 голос
/ 23 сентября 2019

Я отправляю шестнадцатеричные значения из Arduino на Android через Uart.Я храню полученные байты из буфера byte[] в длинную строку на стороне Android.И, после сохранения в строке, я хочу преобразовать ее в шестнадцатеричное, или я хочу, чтобы мой массив поддерживал значения выше 128.

, когда я делаю это

byte[] received_byte= string.getBytes();
String received = bytesToHex(received_array);

static String bytesToHex(byte[] hashInBytes) {
    StringBuilder value = new StringBuilder();
    for (byte b : hashInBytes) {
        value.append(String.format("%02x", b & 0xff));
    }
    return value.toString();
}

Arduino isотправив это: 2b18021a00011a1a0708403081806f0132140845

полученная строка содержит это: 2b18021a00011a1a07084030efbfbdefbfbdefbfbd6f0132140845

Я знаю, что байты не поддерживают значения выше 128. Я даже пытался изменить полученный_байт в short [], но проблемас этим моя строка содержит это "+=��@0���o2E", так как я непосредственно храню данные непосредственно из буфера byte[].

Пожалуйста, дайте мне знать, если я не ясен в моем вопросе.

...