9

Expressでnode.jsを使用しています。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

I think I got stuck in a similar issue and neebz solution worked but I had to put it in the right spot.

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);
  });
});

In the node.js docs its documented as request.setEncoding() which might be an error because it needs to be called on the res object that is created by the request.

于 2011-07-13T15:54:01.873 に答える
0

エンコードタイプを設定していますか

res.setEncoding('utf8');

?

于 2011-04-18T21:13:06.380 に答える