How to get UTF-8 in Node.js?

78,843

Solution 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");

Solution 2

I can't solve this problem with setting content type. I solved this problem with encode function.

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

For more information: express cookie

ExpressJS version: 4.16.4

Share:
78,843
Jack
Author by

Jack

Updated on July 15, 2022

Comments

  • Jack
    Jack almost 2 years

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