目前这是我整个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文档的理解,resp.write()的第二个参数'utf8'应该导致node将HTML字符串编码为UTF-8,而不是JavaScript字符串本地表示的UTF-16。但是,当我将浏览器指向localhost:80,查看源代码并将其保存到本地HTML文件时,Notepad ++告诉我该文件以UTF-16编码。此外,当我通过W3C HTML验证器工具运行它时,它还抱怨“内部编码声明utf-8与文档的实际编码(utf-16)不符”。
如何强制node.js将我的HTTP响应正文编码为UTF 8?