gpt4 book ai didi

javascript - 如何在 JavaScript 类型化数组中使用字符串

转载 作者:太空狗 更新时间:2023-10-29 14:18:24 25 4
gpt4 key购买 nike

我遇到了一个问题,因为我没有找到一种方法可以轻松地将字符串转换为类型化数组,并且从类型化数组转换为字符串似乎是一个真正的痛苦,需要对每个字节进行手动字符代码转换。有没有更好的方法将字符串转换为类型化数组或反之亦然?

示例:

我有一个 UTF8 编码的字符串“Something or other”,我想将它写入 ArrayBuffer 的长度然后是字符串格式。

最佳答案

这应该可以解决您的问题

How to use strings with JavaScript Typed Arrays

JS 字符串以 UTF-16 编码存储,每个字符占用 2 个字节。 String.charCodeAt 返回这些 2 字节的 Unicode。这是从 DataView 读取 UTF-16 编码字符串的方法:

DataView.prototype.getUTF16String = function(offset, length) {
var utf16 = new ArrayBuffer(length * 2);
var utf16View = new Uint16Array(utf16);
for (var i = 0; i < length; ++i) {
utf16View[i] = this.getUint8(offset + i);
}
return String.fromCharCode.apply(null, utf16View);
};

以及这些将字符串与数组缓冲区相互转换的函数

    function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}

function str2ab(str) {
var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
var bufView = new Uint16Array(buf);
for (var i=0, strLen=str.length; i<strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}

关于javascript - 如何在 JavaScript 类型化数组中使用字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com