这是目前我的整个的node.js服务器代码UTF-8:如何HTTP响应体编码为在node.js中
require('http').createServer(function (req, resp) {
var html = [
'<!DOCTYPE html>',
'<html>',
'<head>',
'<meta charset="utf-8" />',
'<title>Sample Response</title>',
'</head>',
'<body>',
'<p>Hello world</p>',
'</body>',
'</html>'
].join('');
resp.writeHead(200, {
'Content-Length': Buffer.byteLength(html, 'utf8'),
'Content-Type': 'application/xhtml+xml;'
});
resp.write(html, 'utf8');
resp.end();
}).listen(80);
根据我的Node.js的文件的理解,第二个“UTF8 'resp.write()的参数应该会导致节点将html字符串编码为UTF-8,而不是JavaScript字符串本身表示为的UTF-16。但是,当我将浏览器指向localhost:80时,查看源代码并将其保存到本地html文件中,Notepad ++告诉我该文件以UTF-16编码。此外,当我通过W3C HTML验证工具运行它时,它也会抱怨“内部编码声明utf-8与文档的实际编码(utf-16)不一致”。
如何强制node.js将我的HTTP响应正文编码为UTF 8?
你可以启动一个数据包嗅探器(Wireshark等)并发布你所看到的样本吗?我没有得到这种行为。 – Brad
您是通过文件上传还是直接指向网站进行验证? –
我已经测试了这两个与WebStorm和Sublime文本,在Linux和Windows(所以这是4个测试),并都显示UTF-8。也许这是一个记事本++的东西? –