node.js Нервный фреймворк Юникод ответ - PullRequest
1 голос
/ 28 сентября 2010

код:

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

показать в браузере:

CAA:89  

Как это должно быть правильно?

1 Ответ

5 голосов
/ 28 сентября 2010

Нерв появляется , чтобы интерпретировать передаваемые вами строки как двоичные строки, что приводит к выводу, который вы видите. Вы можете использовать класс 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...