node.js神经框架unicode响应

码:

var nerve = require("./nerve"); var sitemap = [ ["/", function(req, res) { res.respond("Русский"); }] ]; nerve.create(sitemap).listen(8100); 

在浏览器中显示:

 CAA:89 

它应该如何正确?

神经似乎将你传递的string解释为二进制string,这会导致你看到的输出。 您可以使用Buffer类将您的UTF-8字符手动转换为二进制string。 您还需要在标题中设置字符集:

 var sitemap = [ ["/", function (req, res) { res.respond({ headers: {"Content-Type": "text/html; charset=utf-8"}, content: new Buffer("Русский", "utf8").toString("binary") }); }] ]; 

如果你想尝试另一个框架, Express在处理UTF-8方面做得更好。 它将string解释为UTF-8并默认正确设置字符集:

 var app = require("express").createServer(); app.get("/", function (req, res) { res.send("Русский"); }); app.listen(8100);