Почему я не могу& #39;t писать китайские иероглифы в HTTP-ответе nodejs?

Вот мой маленький code:

var http = require('http');
var port = 9002;
var host_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», и это работало хорошо. Затем я хотел немного подкорректировать и изменил «мир» на китайский эквивалент «世界», и поэтому изменил «кодировку» «тип содержимого -» в заголовке на «utf -8». Но в Chrome и Firefox я вижу это:

hello 涓栫晫

Однако удивительно Opera (11.61 )действительно показывает правильный результат hello 世界. Я хочу знать, не упустил ли я что-то в коде, и почему это происходит. Спасибо вам, ребята.

Думаю, этот пост похож на мою ситуацию, но не совсем.

8
задан Community 23 May 2017 в 12:00
поделиться