Javascript node js处理西里尔编码有什么问题

Javascript node js处理西里尔编码有什么问题,javascript,node.js,express,utf-8,character-encoding,Javascript,Node.js,Express,Utf 8,Character Encoding,如果你从 网页: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/

如果你从

网页:

var http = require('http');
    http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
这很好,但是试着打印一些西里尔文,比如:

var http = require('http');
    http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Здравей Свят\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
您将只得到解码错误的字符。我尝试了各种组合,用不同的内容类型、内容长度设置标题,使用节点iconv模块和其他东西,但我发现自己陷入了困境

基本上,我有基于平均值的web应用程序,我只想在客户端浏览器上显示html/jade文件中的西里尔文字。已经挖了几天了,没有结果。我确信如果有人能告诉我应该做什么才能让上述代码正常工作,我会将其应用到我的应用程序中(正如我已经非常确定的那样,这个问题来自一些较低的级别,而不是express midlewares等)

据我所知,这似乎是一个老问题,它起源于javascript/v8处理utf-8的方式。我看到很多其他帖子都在抱怨类似的问题,但由于我一直在尝试调整它们,但运气不佳,我想我会冒险发布一个重复的问题,并有机会

我访问过的其他一些帖子/帖子:


任何帮助都将不胜感激

阿拉斯泰尔的评论解决了我的问题,解决了我的头痛:)

我正在使用WebStorm IDE,根本不记得检查自己的文件编码。。。在记事本++中尝试了NodeJS示例后,它就直接起作用了。即使不需要手动设置字符集

事实证明,不需要通过手动设置编码

      res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});

因此,如果有人遇到我遇到的类似问题-首先验证源文件的编码

尝试显式设置编码
res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'})另外,确保您的源文件以UTF-8编码:阿拉斯泰尔的评论解决了我的问题并修复了我的头痛:)我正在使用WebStorm IDE,根本不记得检查自己的文件编码。。。在记事本++中尝试了NodeJS示例后,它就直接起作用了。即使不需要手动设置字符集。谢谢阿拉斯泰尔!