windowsshell中的scala默认编码

windowsshell中的scala默认编码,scala,encoding,Scala,Encoding,初学者问题:我在Windows8机器上的标准命令shell中使用Scala2.11.4(代码页为850)。 如果我在scala提示符下键入“Müller” 斯卡拉>“穆勒” res0:String=M?ller 在我的第一个scala试用计划中也发生了同样的情况: import scala.io.StdIn.readLine object Hello { def main(args: Array[String]) { val myname=readLine("What is

初学者问题:我在Windows8机器上的标准命令shell中使用Scala2.11.4(代码页为850)。 如果我在scala提示符下键入“Müller” 斯卡拉>“穆勒” res0:String=M?ller

在我的第一个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 + "!")
    }
}
通过“scala Hello”调用它可以得到: 你叫什么名字?米勒 你好,米勒

我猜println使用不同的编码作为默认值(“ISO-8859-1”-部分没有改变任何东西,顺便说一下)

显示了
cp1252
。 所以我生成了一个环境变量(thanx到Martin Sturm)
JAVA_OPTS=“-Dfile.encoding=CP850”

目前,一切都按预期进行(门钦是schön)。

您是否尝试了
UTF-8
编码?我无法进行测试,但在Unix机器上,默认值按预期工作。在启动scala repl之前,
chcp 1252
做什么?我猜你没有在cmd外壳上启用unicode代码点Scala repl只是在启动时使用任何可用的编码-也就是说,它从现有环境继承这些属性。chcp 65001不支持德语上的äüöetckeyboard@S.R.I在某种程度上,您是对的:但它没有像我预期的那样选择控制台默认设置,而是使用java默认设置(windows环境中的cp1252)。但谢谢你,这是正确的一点!
scala> System.getProperty("file.encoding")