28

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

3 回答 3

46

连接到您的响应生成器或创建执行以下操作的中间件:

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

否则浏览器会以他喜欢的编码显示内容。

如果这对您没有帮助,则 DB 可能编码错误。

编辑:由于答案已有近 5 年的历史,API 已更改。对于当前的 node.js 版本,使用:

res.setHeader("Content-Type", "application/json; charset=utf-8");
于 2013-04-28T21:43:25.447 回答
1

我无法通过设置内容类型来解决这个问题。我用编码功能解决了这个问题。

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

欲了解更多信息:快递 cookie

ExpressJS 版本:4.16.4

于 2019-02-04T19:17:08.030 回答
-4

我的问题解决了这个:

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

于 2016-10-09T11:24:11.687 回答