javascript - Node 编码和解码 utf-16 缓冲区

标签 javascript node.js

我正在处理需要与 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/

相关文章:

javascript - 这个数字范围正则表达式可以重构吗?

javascript - 修复创建粘性滚动导航栏时的 "jump"

node.js - 检索属于 HTTP 请求的 socket.io 连接

node.js - 有没有人有一个很好的解决方案来将模块包装器与父项目分离?

regex - 如何创建处理如下 URL 的 Express 路由?

javascript - Node.js 服务器上的 ECONNRESET 错误有何影响(如果有)?

javascript - React setState + 'prevState' 从哪里来?

javascript - Mongodb异步获取结果

javascript - 元素上传成功后,如何让上传状态div消失?

node.js - 如何知道用户是否使用passport.js 登录?