【问题标题】:How can I send JSON with ExpressJS as UTF-8?如何使用 ExpressJS 作为 UTF-8 发送 JSON?
【发布时间】:2015-09-08 14:45:26
【问题描述】:

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

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

【问题讨论】:

    标签: javascript json express encoding utf-8


    【解决方案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);
    }
    

    【讨论】:

    • 似乎仍然具有正确的 Content-Type ,尽管它应该是 json 自动的。仍然不会对挪威字母进行编码。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多