Il corpo di risposta delle richieste HTTP che utilizza il modulo "http" nativo, visualizza i caratteri del punto interrogativo per i caratteri Unicode invece del loro valore effettivo. Ecco lo snippet di codice di base che sto utilizzando.Problema unicode Node.js con il corpo di risposta HTTP
var http = require('http');
var google = http.createClient(80, 'www.google.it');
var request = google.request('GET', '/',
{
'host': 'www.google.it',
}
);
request.end();
request.on('response', function (response) {
response.setEncoding('utf8');
response.on('data', function (chunk) {
console.log(chunk);
});
});
Nella risposta c'è una parola specifica che inizia con "Pubblicit". La sua ultima lettera è un personaggio strano che mi mostra come un punto interrogativo. La parola dovrebbe essere Pubblicità, invece è indicata come Pubblicit?.
Ho anche provato in uscita i dati utilizzando .toString()
:
console.log(chunk.toString());
o
console.log(chunk.toString('utf8'));
Ma sto ottenendo gli stessi risultati.
Qualche idea?
qual è il tuo sistema operativo? –
Prova a controllare 'chunk.charCodeAt (chunk.length - 1)'. Se è '224' (' à'), il problema è con la tua console/locale. – katspaugh
@PabloFernandez, usando Mac OS X Snow Leopard –