2014-12-27 67 views
1

初學者的問題:我在標準命令shell(代碼頁是850)的Windows 8機器上使用scala 2.11.4。 如果鍵入「穆勒」在斯卡拉提示符 斯卡拉>「穆勒」 RES0:字符串= M繆勒windows shell中的scala默認編碼

同樣的情況,在我的第一階試驗計劃:

import scala.io.StdIn.readLine 

object Hello { 
    def main(args: Array[String]) { 
     val myname=readLine("What is your name?","ISO-8859-1") 
     println("Hallo " + myname + "!") 
    } 
} 

通過調用它「斯卡拉你好」收益率: 你叫什麼名字?Müller Hallo M?ller!

我猜println使用不同的編碼作爲默認值(順便說一句,「ISO-8859-1」部分沒有改變任何東西)?

+0

你用'UTF-8'編碼試過了嗎?我無法測試,但在Unix機器上,默認按預期工作。 – 2014-12-27 21:14:38

+0

在啓動scala repl之前做'chcp 1252'是做什麼的?我猜你沒有在cmd shell上啓用unicode codepoints。 – 2014-12-28 06:31:00

+0

Scala repl只是在啓動時使用任何可用的編碼 - 也就是說,它從現有環境中繼承這些屬性。 – 2014-12-28 06:31:45

回答

0

scala> System.getProperty(「file.encoding」)顯示cp1252。 所以我生成了一個環境變量(比馬丁Sturm thanx) JAVA_OPTS =「 - Dfile.encoding = CP850」 和目前一切正常預期(慕尼黑istschön)。