如何将ExpressJS的JSON作为UTF-8发送?

时间:2015-06-23 00:30:04

标签: javascript json express encoding utf-8

我一直在努力使用我正在制作的新网络应用。在以前的情况下,我不记得遇到过这个问题。我用一段非常简单的代码进行测试。

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

2 个答案:

答案 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并转换旧文件。文件编码也标记在设置视图中。