2010-09-27 64 views
1

代碼:Node.js的神經框架unicode的響應

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

顯示在瀏覽器中:

CAA:89 

應該如何正確的嗎?

回答

5

Nerve 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); 
+0

哦,親愛的。從這個git鏈接中,神經似乎在錯誤頁面中有一個HTML注入漏洞。哎呦。不太好。 – bobince 2010-09-28 09:09:44