askhat
@askhat
SDE @ Akvelon

Как сериализовать Uint8Array в строку и обратно?

const initialArr = new Uint8Array(someRandomValues)
console.log(initialArr) // Uint8Array(32) [ 72, 173, 29, 53, 60, 34, 87, 32, 196, 56, … ]
const str = new TextDecoder().decode(initialArr)
console.log(str) // H��5<"W �8b�z��M��c�yQ�g����M8�
const arr = new TextEncoder().encode(str)
console.log(arr) // Uint8Array(55) [ 72, 239, 191, 189, 29, 53, 60, 34, 87, 32, … ]


Почему в результате операций arr не тот же самый что и initialArr?
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
askhat
@askhat Автор вопроса
SDE @ Akvelon
Если целью является сериализация массива для сохранения в текстовом файле, то проще всего будет воспользоваться методом .toString.
new Uint8Array([1,2,3]).toString()
> "1,2,3"

Такую строку легко хранить и восстанавливать исходный массив.
new Uint8Array("1,2,3".split(','))
> Uint8Array [1, 2, 3]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы