Как получить 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"});