node.js Nerve Rahmen Unicode-Antwort
Frage
code:
var nerve = require("./nerve");
var sitemap = [
["/", function(req, res) {
res.respond("Русский");
}]
];
nerve.create(sitemap).listen(8100);
show in Browser:
CAA:89
Wie sollte es richtig sein?
Lösung
erscheint die Saiten zu interpretieren Sie passieren als binäre Strings, die Ergebnisse in der Ausgabe Sie sehen. Sie können die Buffer-Klasse verwenden Ihre UTF-8-Zeichen in eine binäre Zeichenfolge manuell zu konvertieren. Sie müssen auch die charset in Ihrem Header setzen:
var sitemap = [
["/", function (req, res) {
res.respond({
headers: {"Content-Type": "text/html; charset=utf-8"},
content: new Buffer("Русский", "utf8").toString("binary")
});
}]
];
Wenn Sie einen anderen Rahmen versuchen wollen, Express einen besseren Job macht Umgang mit UTF-8. Er interpretiert Strings als UTF-8 und setzt die charset standardmäßig korrekt:
var app = require("express").createServer();
app.get("/", function (req, res) {
res.send("Русский");
});
app.listen(8100);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow