9

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

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

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

4

3 回答 3

9

你有没有尝试过:

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

确保您的数据是 utf8 格式而不是 Buffer。

于 2011-06-14T02:07:40.780 回答
1

我想我遇到了类似的问题,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 对象上调用。

于 2011-07-13T15:54:01.873 回答
0

你在设置编码类型吗

res.setEncoding('utf8');

?

于 2011-04-18T21:13:06.380 回答