在服务器默认发送的数据,其实是utf8 编码的内容,但是浏览器不知道你是utf8 编码的内容
浏览器在不知道服务器响应内容的编码情况下,会按照当前操作系统的默认编码去解析
中文操作系统,默认是 gbk。
// 解决方法:正确告诉浏览器发送的内容是什么编码的
res.setHeader('Content-Type', 'text/plain;charset=utf-8');
- Content-Type就是用来告知对方我给你发送的数据内容是什么类型
- text/plain 是普通文本的意思
- 如果发送的是html格式的字符串,也要告诉浏览器发送的数据内容的类型
根据文本类型不同,来解决中文乱码问题
var url = req.url;
if (url === '/plain') {
res.setHeader('Content-Type', 'text/plain;charset=utf-8');
res.end('你好 node.js');
} else if (url === '/html') {
res.setHeader('Content-Type', 'text/html;charset=utf-8');
res.end('<p>hello html <a href="">点我</a></p>');
}