Node.js cadre Nerve réponse unicode
Question
code:
var nerve = require("./nerve");
var sitemap = [
["/", function(req, res) {
res.respond("Русский");
}]
];
nerve.create(sitemap).listen(8100);
show dans le navigateur:
CAA:89
Comment ça devrait être correct?
La solution
apparaît pour interpréter les chaînes que vous passez sous forme de chaînes binaires, ce qui entraîne la sortie que vous voyez. Vous pouvez utiliser la classe tampon pour convertir vos caractères UTF-8 à une chaîne binaire manuellement. Vous devez également définir le jeu de caractères dans vos têtes:
var sitemap = [
["/", function (req, res) {
res.respond({
headers: {"Content-Type": "text/html; charset=utf-8"},
content: new Buffer("Русский", "utf8").toString("binary")
});
}]
];
Si vous voulez essayer un autre cadre, Exprimez fait un meilleur UTF-8 Gestion des emplois. Il interprète les chaînes UTF-8 et définit le charset correctement par défaut:
var app = require("express").createServer();
app.get("/", function (req, res) {
res.send("Русский");
});
app.listen(8100);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow