node.js神经框架unicode响应

时间:2010-09-27 20:27:19

标签: unicode utf-8 node.js

代码:

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

在浏览器中显示:

CAA:89  

它应该如何正确?

1 个答案:

答案 0 :(得分:5)

神经appears将您传递的字符串解释为二进制字符串,从而产生您所看到的输出。您可以使用Buffer类手动将UTF-8字符转换为二进制字符串。您还需要在标题中设置字符集:

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

如果你想尝试另一个框架,Express可以更好地处理UTF-8。它将字符串解释为UTF-8并默认设置正确的字符集:

var app = require("express").createServer();

app.get("/", function (req, res) {
  res.send("Русский");
});

app.listen(8100);