如何使用 ExpressJS 作为 UTF-8 发送 JSON?

How can I send JSON with ExpressJS as 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

尝试使用 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);
}

我意识到问题必须针对我的 IDE。所以这个答案将针对那些使用 WebStorm 的人:

我之前在 windows 计算机上启动了一个项目,它将我的源文件转换为 windows-1252 编码而不是 utf-8。确保执行 Preferences > File Encoding 并将所有编码设置为 UTF-8 并转换旧文件。文件编码在设置视图中也有标注