ここに私の小さなコードがあります:
var http = require('http');
var port = 9002;
var host_ip = '<my_ip>';
http.createServer(function (req, res) {
var content = new Buffer("Hello 世界", "utf-8")
console.log('request arrived');
res.writeHead(200, {
'Content-Encoding':'utf-8',
'charset' : 'utf-8',
'Content-Length': content.length,
'Content-Type': 'text/plain'});
res.end(content.toString('utf-8'),'utf-8');
}).listen(port, host_ip);
console.log('server running at http://' + host_ip + ':' + port);
以前はres.end
、「hello world」を送信するだけでうまくいきました。次に、少し調整したいと思い、「世界」を中国語の「世界」に変更したため、ヘッダーの「charset」「content-type」を「utf-8」に変更しました。しかし、Chrome と Firefox では次のように表示されます。
hello 涓栫晫
しかし、驚くべきことに、opera(11.61) は正しい結果を示していますhello 世界
。コードで何かを見逃していないかどうか、またその理由を知りたいです。君たちありがとう。
この投稿は私の状況に似ていると思いますが、正確ではありません。