如何使用nodejs在控制台中打印一个utf8string

我想在控制台中使用nodejs在保加利亚打印一个string。 我有一个index.js文件,它可以:

console.log('Текст на български.'); 

当我在控制台中运行它:node index.js它只打印 – '??????????' 我正在使用Webstorm,并将IDE和项目文件编码设置设置为utf8。 我也试过:

 var strInBulgarian = 'Текст на български.'; console.log(strInBulgarian.toString('utf8')); 

同样的结果。 如果我在nodejs REPL中运行以下命令,我会得到正确的结果:

 console.log('Текст на български.'); 

这导致我相信,我得到'???????' 是由于文件编码,但它设置为utf8。 有任何想法吗? 这里是Webstorm中设置的截图。 在这里输入图像描述

嗯,现在我把所有的设置改为UTF8保加利亚文中的文字在我的评论中改为'?????' 这之前还好。 有些是绝对不对的。 当我从Notepad ++创build一个index.js文件,并将编码设置为utf8时,我没有任何问题。 Webstorm的设置不正确。

Webstorm的“项目编码”设置似乎只适用于新添加的文件。 从你的屏幕截图(见右下angular)来看,你的个人文件仍然使用Windows-1252 。 您需要手动使Webstorm将每个文件解释为UTF-8。

您可以通过窗口右下angular的下拉菜单打开相关文件:

屏幕1

或者通过“文件编码”设置窗口本身:

屏幕2


另一种可能性是直接.idea/encodings.xml项目目录中的.idea/encodings.xml文件,但我不会在这里详述。

如果您使用的是标准Windows命令提示符,则需要确保正在使用UTF8代码页( chcp 65001 ),并且使用的是Lucida Console字体而不是Raster字体。

进行这些更改后,文本显示对我来说很好,无论是在REPL中,还是从文件中执行。