我猜Scala在显示“\ 303 \ 251”unicode时出了问题。理想情况下,它应显示“Ô,而是显示“é”。
我试过几个scala版本,如2.10.4,2.10.5& 2.11.8但我得到了相同的输出(即é)。
$ JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 sbt
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
> console
Welcome to Scala version 2.11.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_71).
scala> print ("\303\251")
é
scala> System.getProperty("file.encoding");
res2: String = UTF8
即使我为\ 303 \ 251使用等效的十六进制转义文字,即\ u00c3 \ u00a9,仍然是相同的输出
scala> print ("\u00c3\u00a9")
é
注意:我只在Linux和Ubuntu操作系统中遇到此问题,但在MAC中它的工作非常精细,如下所示:
scala> print ("\303\251")
é
我不明白为什么scala在linux和Linux中提供了错误的输出。 ubuntu机器。有人遇到过这个问题吗?请让我知道如何解决这个问题。感谢您的时间和帮助。
答案 0 :(得分:0)
是的,Linux字符编码是个问题。更改环境变量LANG后(如下所示),一切正常。
/usr/bin/env LANG=en_US.UTF-8 /usr/bin/xterm