我有一个问题。我需要与 C 节点通信 javascript。
协议(protocol)使用带有 0xAAAA header 的字符串。
在 JS 中我有一个带有 {\xAA,\xAA} 的 Uint8Array 我的问题是我需要将 Uint8Array 转换为 String UTF-8 。
如何将 UTF-8 格式的 Uint8Array 转换为 utF-8 字符串
最佳答案
尝试一下:
function str2arr(str) {
var utf8 = unescape(encodeURIComponent(str));
return new Uint8Array(utf8.split('').map(function (item) {
return item.charCodeAt();
}));
}
function arr2str(arr) {
// or [].slice.apply(arr)
var utf8 = Array.from(arr).map(function (item) {
return String.fromCharCode(item);
}).join('');
return decodeURIComponent(escape(utf8));
}
var arr = str2arr('汉字');
document.querySelector('div').innerHTML = arr;
document.querySelector('div:nth-of-type(2)').innerHTML = arr2str(arr);
<div></div>
<div></div>
[0xAA, 0xAA] is an invalid utf8 array.
引用:https://github.com/zswang/jpacks 二进制数据打包和解包。
关于javascript - 将 UTF-8 UInt8Array 转换为 utf-8 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43933735/