APIでUTF-8サポートを取得するにはどうすればよいですか?現時点では、文字列は次のように出力されます。
name: "John D�m"
の代わりに:
name: "John Döm"
以下のapp.jsをチェックアウトします。
var express = require('express'),
driver = require('./driver');
var app = express();
app.configure(function () {
app.use(express.logger('dev'));
app.use(express.bodyParser());
});
app.get('/drivers', driver.findAll);
app.listen(3000);
console.log('Up: http://127.0.0.1:3000/');
応答ジェネレーターに接続するか、以下を実行するミドルウェアを作成します。
res.header("Content-Type", "application/json; charset=utf-8");
それ以外の場合、ブラウザはお気に入りのエンコーディングでコンテンツを表示します。
これが役に立たない場合、DBはおそらく間違ったエンコーディングになっています。
編集:答えはほぼ5年前なので、APIは変更されました。現在のnode.jsバージョンの場合:
res.setHeader("Content-Type", "application/json; charset=utf-8");
コンテンツタイプを設定してもこの問題を解決できません。エンコード機能でこの問題を解決しました。
res.cookie('someCookie', someCookie, {
encode: c => c,
});
詳細については、 express cookie
ExpressJSバージョン:4.16.4