为什么在打印希腊字符时IntelliJ的scala控制台会显示问号?

时间:2019-06-03 19:07:59

标签: scala intellij-idea encoding

例如,我观察到以下行为:

Welcome to Scala 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 12.0.1).
Type in expressions for evaluation. Or try :help.

scala> print("hi!")
hi!
scala> print("γεια!")
????!

我该如何解决?

file.encoding设置为UTF-8时,我得到:

scala> sys.props("file.encoding")
res0: String = UTF-8

scala> print("γεια!")
????!
scala> 

enter image description here

2 个答案:

答案 0 :(得分:2)

  

关键是运行/调试控制台使用IDEA编码。 IDEA是Java应用程序,可以在idea.exe.vmoptions文件中将编码设置为普通VM参数。该文件位于您的IDEA executabe文件附近,并包含一组JVM参数。在此处添加-Dfile.encoding = UTF-8以设置UTF-8编码。

来自https://intellij-support.jetbrains.com/hc/en-us/community/posts/206290929-How-can-you-display-UTF-8-characters-in-the-Console-tab-

答案 1 :(得分:2)

通过运行file.encoding检查UTF-8是否设置为Scala Console并进行评估

sys.props("file.encoding")

如果不返回

res0: String = UTF-8

然后停止并编辑Scala Console运行配置。在VM Options输入字段下输入Unicode文件编码,例如

-Dfile.encoding=UTF-8

现在重新运行Scala Console运行配置,重新评估sys.props("file.encoding")以确保其显示为UTF-8,然后尝试print("γεια!")现在应该输出

scala> print("γεια!")
γεια!