【问题标题】:How to edit a byte at a given index in a "ArrayBuffer"如何编辑“ArrayBuffer”中给定索引处的字节
【发布时间】:2018-12-20 14:27:28
【问题描述】:

我找不到更改 ArrayBuffer 中值的方法。

我可以使用TextDecoder 打印ArrayBuffer 的内容。打印缓冲区时有一个字符串。我想通过编辑缓冲区上的一个字节来更改字符串上的一个字符。我可以通过将缓冲区转换为 Int8Array 来访问缓冲区上的一个字节,但我不确定如何在编辑字节后再次将其转换为 ArrayBuffer

var enc = new TextDecoder("utf-8");
console.log('ArrayBuffer string content : ', enc.decode(data));
let view = new Int8Array(data);
view[56] = 48;
view[57] = 48;
// Convert view again to an ArrayBuffer
//console.log('ArrayBuffer string new content : ', enc.decode(data));

【问题讨论】:

标签: javascript


【解决方案1】:

您可以直接在 Int8Array 上使用 set 方法:

var enc = new TextDecoder("utf-8");
console.log('ArrayBuffer string content : ', enc.decode(data));
let view = new Int8Array(data);
view.set([48], 56);
view.set([48], 57);

【讨论】:

  • 但这不会改变数据变量中的字节值
  • 你的数据变量是什么类型的?你能显示初始化数据的代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多