服务器端向客户端进行数据传输的时候,传输的内容是经过编码的,可以想象成 加密 ,客户端也就是浏览器接收到数据时需要先解密在进行显示,如果解密和加密的密码本不一致就会造成乱码。服务器端的默认都是utf8编码的,也就是用utf8进行的加密;而客户端的默认解密方法不是utf8,利用gbk解析utf8自然出错了。 解决办法:设置响应头信息告诉浏览器编码方式 res.writeHead(200, { 'content-type': 'text/plain;charset=utf8' });