【问题标题】:How can I print a utf8 string in the console using nodejs如何使用 nodejs 在控制台中打印 utf8 字符串
【发布时间】:2015-07-04 12:24:14
【问题描述】:

我想使用 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,我的 cmets 中的保加利亚语文本更改为“?????”在那之前很好。某某肯定是不对的。当我从 Notepad++ 制作 index.js 文件并将编码设置为 utf8 时,我没有遇到任何问题。 Webstorm 的设置有问题。

【问题讨论】:

  • 您是否使用普通控制台而不是 Webstorm 对其进行了测试?
  • 我使用的是默认的 windows 命令提示符,而不是 Webstorm 的控制台。我只是在 Webstorm 中编写代码。
  • 您是否尝试单击 js 文件的 Default Encoding 字段并将其显式设置为 UTF8?或者试试File->File encoding菜单,把打开的文件改成UTF8来转换文件?
  • 是的,我尝试在 .coffee 和 .js 文件上从“文件”菜单设置文件结束编码,但仍然没有帮助。

标签: node.js string encoding utf-8


【解决方案1】:

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

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

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


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

【讨论】:

  • 是的,做到了。谢谢。
【解决方案2】:

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

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

【讨论】:

  • 我试过了,但没有解决问题。我不认为问题出在控制台中的设置上,因为在这个项目中我有保加利亚语的文件夹,它们在控制台中看起来很好。只有当我执行 js 文件时。它必须来自 Webstorm 的设置。我将编辑我的问题并附上 Webstorm 设置中的图片。
猜你喜欢
  • 2018-08-05
  • 2022-01-01
  • 1970-01-01
  • 2021-04-09
  • 2016-07-23
  • 2013-02-10
  • 1970-01-01
相关资源
最近更新 更多