node.js神经框架unicode响应

1 unicode utf-8 node.js

码:

var nerve = require("./nerve");
var sitemap = [
    ["/", function(req, res) {
        res.respond("???????");
    }]
];
nerve.create(sitemap).listen(8100);
Run Code Online (Sandbox Code Playgroud)

在浏览器中显示:

CAA:89  
Run Code Online (Sandbox Code Playgroud)

它应该如何正确?

Tod*_*ell 5

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

var sitemap = [
  ["/", function (req, res) {
    res.respond({
      headers: {"Content-Type": "text/html; charset=utf-8"},
      content: new Buffer("???????", "utf8").toString("binary")
    });
  }]
];
Run Code Online (Sandbox Code Playgroud)

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

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

app.get("/", function (req, res) {
  res.send("???????");
});

app.listen(8100);
Run Code Online (Sandbox Code Playgroud)