web-dev-qa-db-fra.com

Comment obtenir UTF-8 dans Node.js?

Comment obtenir le support UTF-8 sur mon API? Pour le moment, une chaîne sort comme ceci:

name: "John D�m"

Au lieu de:

name: "John Döm"

Commander app.js ci-dessous:

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

Connectez-vous à votre générateur de réponses ou créez un middleware qui fait ce qui suit:

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

Sinon, le navigateur affiche le contenu dans son encodage préféré.

Si cela ne vous aide pas, DB est probablement dans le mauvais encodage.

Edit: Puisque la réponse a presque 5 ans, l'API a changé. Pour les versions actuelles de node.js, utilisez:

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

Je ne peux pas résoudre ce problème en définissant le type de contenu. J'ai résolu ce problème avec la fonction d'encodage.

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

Pour plus d'informations: cookie express

Version ExpressJS: 4.16.4

1
Murat Ersin