如何在Node.js中获得UTF-8?

Jac*_*ack 23 encoding utf-8 character-encoding node.js

如何在API上获得UTF-8支持?目前,字符串输出如下:

name: "John D?m"
Run Code Online (Sandbox Code Playgroud)

代替:

name: "John Döm"
Run Code Online (Sandbox Code Playgroud)

结帐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/');
Run Code Online (Sandbox Code Playgroud)

The*_*ppo 37

挂钩响应生成器或创建执行以下操作的中间件:

res.header("Content-Type", "application/json; charset=utf-8");
Run Code Online (Sandbox Code Playgroud)

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

如果这没有帮助你DB可能是错误的编码.

编辑:由于答案已接近5年,因此API已发生变化.对于当前的node.js版本,请使用:

res.setHeader("Content-Type", "application/json; charset=utf-8");
Run Code Online (Sandbox Code Playgroud)

  • res.charset 对我不起作用(nodejs 0.10.8)但这种 json 样式有效:http://pastebin.com/NwcVEAra (2认同)