node socket tcp client 如何提交gbk到服务器
现在java服务器那边只接收gbk格式的,node这边怎么提交都是乱码,请教下怎么能在socket提交时提交gbk格式的,看了下setEncoding 只有 ‘utf8’,‘ascii’ 或 ‘base64’
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 8008;
var client = new net.Socket();
client.connect(PORT, HOST, function() {
console.log('CONNECTED TO: ' + HOST + ':' + PORT);
client.write('中文'); //这里就提交就乱码了
});
// 为客户端添加“data”事件处理函数
// data是服务器发回的数据
client.on('data', function(data) {
console.log('DATA: ' + data);
// 完全关闭连接
client.destroy();
});
// 为客户端添加“close”事件处理函数
client.on('close', function() {
console.log('Connection closed');
});
8 回复
@yjhjstz 这里在client把汉字编码成gbk,但提交时还是提交的utf8的吧。
这样…
const iconv = require('iconv-lite');
client.write( iconv.encode('中文', 'gbk') ); //这里就提交就乱码了
write 发送时是用二进制流,编码成 gbk , 发送出去就是 GBK 流啦。
当然请发送 Buffer, 否则this.defaultEncoding = options.defaultEncoding || 'utf8'
; 还是默认编码 string.
@nyrf
@yjhjstz 哦哦,了解,3q
@magicdawn 我试下,谢谢
用 @magicdawn 的方法解决了,谢谢
如果追求性能,可以用alinode