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/');
Overview. In this guide, you can learn how to enable or disable the Node. js driver's UTF-8 validation feature. UTF-8 is a character encoding specification that ensures compatibility and consistent presentation across most operating systems, applications, and language character sets.
var someEncodedString = Buffer. from('someString', 'utf-8'). toString(); This avoids any unnecessary dependencies that other answers require, since Buffer is included with node.
While a JavaScript source file can have any kind of encoding, JavaScript will then convert it internally to UTF-16 before executing it. JavaScript strings are all UTF-16 sequences, as the ECMAScript standard says: When a String contains actual textual data, each element is considered to be a single UTF-16 code unit.
Most JavaScript engines use UTF-16 encoding, so let's detail into UTF-16. UTF-16 (the long name: 16-bit Unicode Transformation Format) is a variable-length encoding: Code points from BMP are encoded using a single code unit of 16-bit. Code points from astral planes are encoded using two code units of 16-bit each.
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");
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With