socket通讯如何发送中文gbk编码字符串?

发布于 2022-09-07 12:04:33 字数 731 浏览 24 评论 0

与一台telent协议的服务器进行交互,服务器通讯编码是gb2312

目前向服务器请求回的内容可以用iconv解码,服务器发过来的gb2312在解码后显示正常

    telnetInput.pipe(through2((chunk, enc, callback) => {
      chunk = iconv.decode(chunk, 'gbk');
      chunk = chunk.replace(/((?:[\n\r]|^)<.*?>)\n\r?/g, '$1 ');
      if (chunk) {
        callback(null, chunk);
      } else {
        callback(null);
      }
    })).pipe(process.stdout);
    

但向服务器发送时,nodejs支持的字符串类型没有gbk类编码

输入的时候用了readline,readline支持的编码跟nodejs保持一致,所以之前有朋友回复的用gbk那个现成模块回报编码不支持的错误。

this.telnetOutput.write(rawStr + '\n');

虽然nodejs可写流wirte支持指定编码,但也不包含中文。发送中文到服务器收到的依然是utf8编码。

既然请求获得下行数据可以是gbk编码,那如何发送原始的gbk编码到服务器端?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文