Scala编码有什么问题?

时间:2016-03-30 20:18:42

标签: scala encoding utf-8 character-encoding sbt

我猜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机器。有人遇到过这个问题吗?请让我知道如何解决这个问题。感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

是的,Linux字符编码是个问题。更改环境变量LANG后(如下所示),一切正常。

/usr/bin/env LANG=en_US.UTF-8 /usr/bin/xterm