2010-01-04 120 views
0

以此文爲例:爲什麼在控制檯上顯示奇怪的字符?

the three umlauts are ä, ö, and ü.

假設他們是在一個文本文件,我讀這樣的:

data = File.read("umlauts.txt") 

現在,如果我嘗試輸出它們,我得到這個:

the three umlauts are Σ, ÷, and ⁿ. 

如果我把它寫到一個文件,他們得到正確的輸出。我如何讓它們在Windows命令提示符下正確顯示?我正在使用Ruby 1.8.6。我希望能夠從命令提示符執行快速調試。

+0

命令提示符使用的編碼可能與您在文本編輯器中使用的編碼不同。 – Wim 2010-01-04 20:42:16

回答

1

該文件是什麼編碼?我猜可能是utf-8。 Windows cmd提示符不使用utf-8。

這裏的覆蓋就是一個很好的文章:http://illegalargumentexception.blogspot.com/2009/04/i18n-unicode-at-windows-command-prompt.html

+1

並且沒有辦法強制它這麼做? – Geo 2010-01-04 20:45:04

+0

不知道,但我不這麼認爲。你可以做的是在打印輸出前轉換編碼(或者某些語言​​允許你在流上指定編碼,不確定關於ruby)。 – slebetman 2010-01-04 21:21:19

+0

@Geo:也許切換操作系統? :P – rfunduk 2010-01-04 21:21:29