我有一些在JavaScript中作为Uint8Array元素范围存在的UTF-8编码数据。是否有一种高效的方法将其解码为常规JavaScript字符串(我相信JavaScript使用16位Unicode)?我不想逐个字符添加,因为字符串连接将变得CPU密集。
我有一些在JavaScript中作为Uint8Array元素范围存在的UTF-8编码数据。是否有一种高效的方法将其解码为常规JavaScript字符串(我相信JavaScript使用16位Unicode)?我不想逐个字符添加,因为字符串连接将变得CPU密集。
function UInt8ArrayToString(uInt8Array: Uint8Array): string
{
var s: string = "[";
for(var i: number = 0; i < uInt8Array.byteLength; i++)
{
if( i > 0 )
s += ", ";
s += uInt8Array[i];
}
s += "]";
return s;
}
如果您需要JavaScript版本,请删除类型注释。 希望这可以帮到您!
u8array.toString()
。当您调用fs.readFile
时,它会暴露Uint8Array对象。 - jcubicUint8Array
对象,调用toString
方法会返回逗号分隔的数字字符串,例如在Chrome 79中返回"91,50,48,49,57,45,"
。 - kolenbuffer.toString("utf8", start, end)
将 Node.js 中的Buffer
转换为 JavaScript 字符串,其中end = start + length
。不幸的是,浏览器没有Buffer
,它们只有Uint8Array
。因此,对于浏览器,您可以使用new TextDecoder().decode(uint8array.subarray(start, end))
。这也适用于 Node.js,因为Buffer
是Uint8Array
的子类。 - Aadit M Shah