如何使用Node.js在控制台中打印utf8字符串

D_A*_*eev 5 string encoding utf-8 node.js

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

console.log('????? ?? ?????????.');
Run Code Online (Sandbox Code Playgroud)

当我在带有以下命令的控制台中运行它时:node index.js仅打印-'??????????' 我正在使用Webstorm,并且已将IDE和项目文件编码设置设置为utf8。我也尝试过:

var strInBulgarian = '????? ?? ?????????.';
console.log(strInBulgarian.toString('utf8'));
Run Code Online (Sandbox Code Playgroud)

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

console.log('????? ?? ?????????.');
Run Code Online (Sandbox Code Playgroud)

这使我相信我得到“ ???????”的原因 是因为文件编码,但是将其设置为utf8。有任何想法吗?这是Webstorm中设置的屏幕截图。 在此处输入图片说明

嗯,现在我将所有设置都更改为UTF8,我的注释中以保加利亚语显示的文本也更改为“ ?????”。在那之前还不错。绝对不正确。当我从Notepad ++中创建一个index.js文件并将编码设置为utf8时,我在那没有问题。Webstorm的设置不正确。

小智 2

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

打开相关文件后,通过窗口右下角的下拉菜单:

屏幕1

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

屏幕2


另一种可能性是直接弄乱.idea/encodings.xml项目目录中的文件,但我不会在那里详细介绍。