Si en node.js definimos el siguiente callback para dar respuesta a una petición HTTP
var server = http.createServer(function (request, response) {
response.writeHead(200);
response.write('el niño es rápido');
response.end();
});
Esto es lo que obtendremos en nuestro navegador Web:
el niño es rápido
Vemos que el navegador no interpreta bien ni los acentos ni la eñe de la frase. Esto pasa porque estamos incluyendo caracteres que están fueran del rango del código ASCII. El navegador necesita que en la cabecera HTTP le especifiquemos el juego de caracteres correcto. Esto se hace a través del Header HTTP Contec-Type, donde en nuestro caso le indicaremos UTF-8.
Modificamos la función:
var server = http.createServer(function (request, response) {
res.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
response.write('el niño es rápido');
response.end();
});
Y ahora el navegador Web interpreta correctamente la respuesta:
el niño es rápido
referencias:
http://nodejs.org/api/http.html
http://howtonode.org/hello-node