Node.js从入门到精通
上QQ阅读APP看书,第一时间看更新

2.4 解决Node.js程序输出中文时出现乱码的问题

修改2.1节中的例2.1的代码,将输出内容修改为中文,代码如下:

//加载http模块
var http = require('http');
console.log("请打开浏览器,输入地址 http://127.0.0.1:3000/");
//创建http服务器,监听网址127.0.0.1 端口号3000
http.createServer(function(req, res) {
     res.end('明日科技');
     console.log("right");
}).listen(3000,'127.0.0.1');

在WebStorm中运行上面代码,单击服务器结果中提示的网址,效果如图2.15所示。

图2.15 Node.js程序输出中文时出现乱码

通过观察图2.15,可以发现Node.js在默认输出中文时会出现乱码问题,这时可以使用response对象的writeHead()方法在输出内容之前将要显示网页的编码方式设置为UTF-8。

【例2.2】在Node.js程序中输出中文。实例位置:资源包\源码\02\02

要想让Node.js程序输出中文,只需要在输出内容之前将要显示网页的编码方式设置为UTF-8,代码如下:

//加载http模块
var http = require('http');
console.log("请打开浏览器,输入地址 http://127.0.0.1:3000/");
//创建http服务器,监听网址127.0.0.1 端口号3000
http.createServer(function(req, res) {
     res.writeHead(200,{"content-type":"text/html;charset=utf8"});     //设置编码方式
     res.end('明日科技');
     console.log("right");
}).listen(3000,'127.0.0.1');

再次在WebStorm中运行程序,效果如图2.16所示。

图2.16 在Node.js程序中输出中文