Невозможно преобразовать буфер массива в строку?

1

Я пытаюсь преобразовать буфер массива в читаемую пользователем строку, но когда я пытаюсь декодировать буфер массива, он вместо этого возвращает иностранные символы.

arrayBuffer = '[18, 32, 121, 49, 72, 220, 122, 210, 56, 86, 171, 17, 36, 81, 52, 151, 102, 70, 216, 254, 207, 175, 161, 253, 216, 30, 99, 35, 30, 121, 226, 96, 86, 94]' 
var readableString = new TextDecoder('utf8').decode(arrayBuffer)

Я пытаюсь декодировать массив с помощью пакета text-encoding, но он возвращает y1H z 8V $ Q4 fF ϯ С# y 'V ^. Есть ли причина, почему он не может быть расшифрован в читаемую пользователем строку?

Теги:
protocol-buffers
utf-8

1 ответ

0

TextDecoder, вероятно, рассматривает необработанные двоичные данные чисел, а затем преобразует их в строку UTF-8. C/C++ имеет такое поведение. Если вы хотите превратить его в удобочитаемую строку, вы можете использовать Array.join или подобное, чтобы преобразовать его в строку. Образец кода:

arrayBuffer = [18, 32, 121, 49, 72, 220, 122, 210, 56, 86, 171, 17, 36, 81, 52, 151, 102, 70, 216, 254, 207, 175, 161, 253, 216, 30, 99, 35, 30, 121, 226, 96, 86, 94];
var readableString = "[" + arrayBuffer.join(", ") + "]";
console.log(readableString)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню