socket通讯如何发送中文gbk编码字符串?
与一台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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
https://www.npmjs.com/package... 这个不行吗