Ruby 为什么控制台上会显示奇怪的字符?

Ruby 为什么控制台上会显示奇怪的字符?,ruby,encoding,Ruby,Encoding,以本文为例: 三个UMLAUT是ä、ö和ü。 假设它们在一个文本文件中,我是这样读的: data = File.read("umlauts.txt") 现在,如果我尝试输出它们,我会得到以下结果: the three umlauts are Σ, ÷, and ⁿ. 如果我将其写入一个文件,它们将正确输出。如何使它们正确显示在windows命令提示符上?我使用的是Ruby 1.8.6。我希望能够从命令提示符执行快速调试。文件的编码是什么?我猜可能是utf-8。Windows cmd提示符不使

以本文为例:

三个UMLAUT是ä、ö和ü。

假设它们在一个文本文件中,我是这样读的:

data = File.read("umlauts.txt")
现在,如果我尝试输出它们,我会得到以下结果:

the three umlauts are Σ, ÷, and ⁿ.

如果我将其写入一个文件,它们将正确输出。如何使它们正确显示在windows命令提示符上?我使用的是
Ruby 1.8.6
。我希望能够从命令提示符执行快速调试。

文件的编码是什么?我猜可能是utf-8。Windows cmd提示符不使用utf-8

这里有一篇很好的文章介绍了这一点:

是否可以为cmd设置不同的值


有关编码的解释,请阅读。

命令提示符使用的编码可能与文本编辑器中使用的编码不同。没有办法强制它这样做?不确定,但我不这么认为。您可以做的是在打印输出之前转换编码(或者某些语言允许您在流上指定编码,但不确定是否使用ruby)。@Geo:可能会切换操作系统?:P@Geo:“没有办法强迫它这么做”=>看看我的答案。