【发布时间】:2015-12-05 10:37:17
【问题描述】:
我正在从 Node.js 服务器提供 HTML 页面,并在浏览器控制台上收到此错误 -
未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。页面的字符编码必须在文档或传输协议中声明。
我知道以前有人问过这个问题,但大多数(如果不是全部)解决方案建议将此行添加到 HTML 文件中 -
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
我已经尝试过了,但它不适合我。
这是我为 HTML 提供服务的 Node.js 服务器代码-
var http = require('http');
var url = require('url');
var fs = require('fs');
var server = http.createServer(function(request, response) {
console.log('connected');
var path = url.parse(request.url).pathname;
switch(path) {
case "/realtime-graph-meter.html":
fs.readFile(__dirname + path, function(error, data) {
if(error) {
response.writeHead(404);
response.write("404 not found");
} else {
console.log("before");
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data, "utf-8");
console.log("after");
}
});
break;
default:
response.writeHead(404);
response.write("404 not found");
break;
}
response.end();
});
server.listen(3000);
.
.
.
before 和 after 日志消息可以正确打印。我已验证我的 HTML 文件是 utf-8 编码的。
有什么建议吗?
【问题讨论】:
标签: javascript html node.js