如何使用nodejs在控制台中打印utf8字符串

时间:2015-07-04 12:24:14

标签: node.js string encoding utf-8

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

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

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

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

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

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

这使我感到相信我得到的原因' ???????'是因为文件编码,但它设置为utf8。有任何想法吗?以下是Webstorm中设置的屏幕截图。 enter image description here

嗯,现在我已将所有设置更改为UTF8,我在评论中保加利亚语中的文字更改为' ?????'在那之前很好。肯定是不对的。当我从Notepad ++创建一个index.js文件并将编码设置为utf8时,我没有遇到任何麻烦。 Webstorm的设置有些不对劲。

2 个答案:

答案 0 :(得分:2)

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

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

screen 1

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

screen 2

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

答案 1 :(得分:0)

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

进行这些更改后,在REPL和从文件执行时,文本显示对我来说都很合适。