我正在处理需要与 C++ tcp/udp 套接字通信的 javascript/nodejs 应用程序。好像我从旧的 C++ 客户端那里得到了一个 utf16 缓冲区。我现在没有找到将其转换为可读字符串的解决方案,而另一个方向似乎也是同样的问题。
这两个方向有没有简单的方法?
亲切的问候
最佳答案
如果您有一个 UTF-16 编码的缓冲区,您可以像这样将它转换为 UTF-8 字符串:
let string = buffer.toString('utf16le');
要从流中读取这些,最简单的方法是在最后使用转换为字符串:
let chunks = [];
stream.on('data', chunk => chunks.push(chunk))
.on('end', () => {
let buffer = Buffer.concat(chunks);
let string = buffer.toString('utf16le');
...
});
将 JS 字符串转换为 UTF-16:
let buffer = Buffer.from(string, 'utf16le')
关于javascript - Node 编码和解码 utf-16 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40418384/