我一直在努力使用我正在制作的新网络应用。在以前的情况下,我不记得遇到过这个问题。我用一段非常简单的代码进行测试。
var jsonToSend = {hello: "woørld"};
app.get('/someUrl', function(req, res) {
res.setHeader('Content-Type', 'application/json');
res.send(jsonToSend);
}
输出为:{"hello":"Woørld"}
,网络标签中包含Content-Type:application/json; charset=utf-8
。我还尝试了JSON.stringify
的各种尝试,并将charset
添加到setHeader
,尽管它似乎在网络标签中是正确的。如何确保从服务器正确编码数据?
我使用WebStorm,我检查文件编码为UTF-8
。
答案 0 :(得分:1)
尝试使用res.set({ 'content-type': 'application/json; charset=utf-8' });
:
var jsonToSend = {"\"hello"\": "\"woørld"\"};
app.get('/someUrl', function(req, res) {
res.setHeader('Content-Type', 'application/json');
res.set({ 'content-type': 'application/json; charset=utf-8' });
res.send(jsonToSend);
}
答案 1 :(得分:1)
我意识到这个问题必须针对我的IDE。所以这个答案将针对那些使用WebStorm的人:
我以前在我的Windows计算机上启动了一个项目,它将我的源文件转换为windows-1252编码而不是utf-8。确保Preferences > File Encoding
并将所有编码设置为UTF-8并转换旧文件。文件编码也标记在设置视图中。