Невозможно преобразовать буфер массива в строку? - PullRequest
0 голосов
/ 13 июня 2018

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

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��ϯ���c # y�`V ^.Есть ли какая-то причина, по которой он не может быть декодирован в читаемую человеком строку?

1 Ответ

0 голосов
/ 13 июня 2018

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...