【问题标题】:How to convert data to utf-8 in node.js?如何在 node.js 中将数据转换为 utf-8?
【发布时间】:2011-08-08 05:00:55
【问题描述】:

我正在使用 node.js 和 express。我使用 Mongoose 从 MongoDB 读取数据,并使用 res.send(data) 以正常方式传递数据。不幸的是,某些请求的交付失败。即使头部说编码是utf-8,在某些情况下似乎是ANSI,导致jsonp回调函数失败并出现错误。

您可以在此页面重现错误:http://like-my-style.com/#!single/9837034。 jsonp 调用仅在某些产品上失败,其中大多数(以及具有特殊字符的产品)都可以正常工作。

如何确保给定的字符串在 node.js 中以 utf-8 编码?

【问题讨论】:

    标签: mongodb character-encoding node.js express mongoose


    【解决方案1】:

    你试过了吗:

    res.send(data.toString("utf8"));
    

    为了确保你的数据是utf8而不是Buffer。

    【讨论】:

      【解决方案2】:

      我认为我遇到了类似的问题,neebz 解决方案有效,但我必须把它放在正确的位置。

      var req = http.request(options, function(res) {
        console.log("statusCode: ", res.statusCode);
        console.log("headers: ", res.headers);
        **res.setEncoding(encoding='utf8');** 
        res.on('data', function(d) {
          console.log(d);
        });
      });
      

      在 node.js 文档中,它记录为 request.setEncoding() 这可能是一个错误,因为它需要在请求创建的 res 对象上调用。

      【讨论】:

        【解决方案3】:

        你在设置编码类型吗

        res.setEncoding('utf8');

        ?

        【讨论】:

        • 这会引发错误:TypeError: Object #<ServerResponse> has no method 'setEncoding'
        • 这很奇怪。你能告诉我们你的代码吗?也看看这个以供参考>stackoverflow.com/questions/3691968/…
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-23
        • 2017-12-08
        • 2015-04-13
        • 1970-01-01
        • 2012-04-23
        • 1970-01-01
        • 2021-02-11
        相关资源
        最近更新 更多