How to get UTF-8 in Node.js?

2019-02-01 21:48发布

问题:

How do I get UTF-8 support on my API? At the moment, a string outputs like this:

name: "John D�m"

Instead of:

name: "John Döm"

Checkout app.js below:

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:

Hook into you response generator or create a middleware that does the following:

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

Otherwise the browser displays the content in his favorite encoding.

If this doesn't help you DB is probably in the wrong encoding.

Edit: Since the answer is nearly 5 years old, the API has changed. For current node.js versions use:

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


回答2:

My problem solved with this:

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