Как получить UTF-8 в Node.js?

Как мне получить поддержку UTF-8 в моем API? На данный момент строка выводится следующим образом:

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/');

Ответы

Ответ 1

Подключитесь к генератору ответов или создайте промежуточное программное обеспечение, которое выполняет следующие действия:

res.header("Content-Type", "application/json; charset=utf-8");

В противном случае браузер отображает контент в своей любимой кодировке.

Если это не поможет, возможно, БД находится в неправильной кодировке.

Изменение: так как ответ почти 5 лет, API изменился. Для текущих версий node.js используйте:

res.setHeader("Content-Type", "application/json; charset=utf-8");

Ответ 2

Я не могу решить эту проблему с настройкой типа контента. Я решил эту проблему с функцией кодирования.

res.cookie('someCookie', someCookie, {
  encode: c => c,
});

Для получения дополнительной информации: экспресс-cookie

Версия ExpressJS: 4.16.4

Ответ 3

Моя проблема решена с помощью этого:

res.writeHeader(200 , {"Content-Type" : "text/html; charset=utf-8"});