我想使用nodejs在控制台中打印保加利亚语字符串。我有一个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 ++创建一个index.js文件并将编码设置为utf8时,我没有遇到任何麻烦。 Webstorm的设置有些不对劲。
答案 0 :(得分:2)
Webstorm的“项目编码”设置似乎只适用于新添加的文件。从屏幕截图(请参见右下角)来看,您的个人文件仍然使用Windows-1252。您需要手动使Webstorm将每个文件解释为UTF-8。
在打开相关文件后,通过窗口右下角的下拉菜单:
或通过“文件编码”设置窗口本身:
另一种可能性是直接搞乱项目目录中的.idea/encodings.xml
文件,但我不会在那里详细介绍。
答案 1 :(得分:0)
如果您正在使用标准Windows命令提示符,则需要确保正在使用UTF8代码页(chcp 65001
)并且您使用的是Lucida Console字体而不是Raster字体。
进行这些更改后,在REPL和从文件执行时,文本显示对我来说都很合适。