node socket tcp client 如何提交gbk到服务器
发布于 8 年前 作者 nyrf 4966 次浏览 来自 问答

现在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的吧。

这样… untitled5.png

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

回到顶部