How to get UTF-8 in Node.js?

character-encoding, encoding, node.js, utf-8

Solution

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

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

Otherwise the browser displays the content in it's favorite encoding.

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

For older node.js versions use:

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

Problem

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

Original source