我试图从 utf16 数组中获取缓冲区,因为 utf8 数组对字符串失败,因为它包含的特殊字符的代码值类似于 8211 或更大的值。
let str = "–ello"
let u16Array = new Uint16Array(str.split('').map(function (char) {
return char.charCodeAt(0);
}));
let u8Array = new Uint8Array(str.split('').map(function (char) {
return char.charCodeAt(0);
}));
u16Array 看起来像 =>Uint16Array(5) [8211, 101, 108, 108, 111]
u8Array 看起来像 =>Uint8Array(5) [19, 101, 108, 108, 111]
因此,当我尝试从 u16Array 创建缓冲区数组时,即使我传递了用于编码的参数,我也会得到与 u8Array 相同的缓冲区数组作为输入
var bz16 = Buffer.from(u16Array, 'utf16le')
var bz8 = Buffer.from(u8Array)
bz16 和 bz8 的结果与
缓冲器 (5) [19, 101, 108, 108, 111]
因为我想在创建时将 Uint16Array 存储到缓冲区中