我有一些UTF-8编码的数据生活在Javascript Uint8Array元素的范围内。是否有一种有效的方法来解码这些到一个常规的javascript字符串(我相信javascript使用16位Unicode)?我不想一次添加一个字符,因为字符串连接会变得CPU密集。
当前回答
在节点“缓冲区实例也是Uint8Array实例”,所以buf.toString()在这种情况下工作。
其他回答
var decodedString = decodeURIComponent(escape(String.fromCharCode(...new Uint8Array(err)))); var obj = JSON.parse(decodedString);
以下是我使用的方法:
var str = String.fromCharCode.apply(null, uint8Arr);
在节点“缓冲区实例也是Uint8Array实例”,所以buf.toString()在这种情况下工作。
对于ES6和UTF8字符串
decodeURIComponent(escape(String.fromCharCode(...uint8arrData)))
我正在使用这个Typescript代码片段:
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版本,则删除类型注释。 希望这能有所帮助!