解释以下Java/Groovy行为
代码: 场景1:解释以下Java/Groovy行为,java,groovy,character-encoding,Java,Groovy,Character Encoding,代码: 场景1: 文件名:Main.groovy 运行方式:Groovy脚本 输出: æµèè• 场景2: 文件名:Main.groovy 运行方式:Java应用程序 输出: ?? 场景3: 文件名:Main.java 运行方式:Java应用程序 输出:测试 编辑1 环境 -Eclipse 4.2.1 -Groovy 2.0.6 -JDK 8u112上述行为似乎特定于windows平台 请确保eclipse设置在项目级别使用project->右键单击->配置选择正确的文本文件编码。i、 例如,在
文件名:Main.groovy
运行方式:Groovy脚本 输出:
æµèè•
场景2:文件名:Main.groovy
运行方式:Java应用程序 输出:
??
场景3:文件名:Main.java
运行方式:Java应用程序 输出:
测试代码>
编辑1
环境
-Eclipse 4.2.1
-Groovy 2.0.6
-JDK 8u112上述行为似乎特定于windows
平台
请确保eclipse设置在项目级别使用project->右键单击->配置选择正确的文本文件编码。i、 例如,在这种情况下更改为UTF-8
,如下图所示
当Main.groovy
作为groovy脚本执行时,您还可以在右侧看到右侧
当然,即使将Main.groovy
作为Java应用程序运行,也会看到正确的结果
希望这有帮助。TL;DR确保源代码和输出编码都已配置为处理您的字符集,例如,全部设置为UTF-8
将print
语句更改为:
public class Main {
public static void main(String[] args) {
System.out.println("测试");
}
}
或者确保Eclipse知道源文件的编码
最好的做法是更改Eclipse工作区,将文件保存在UTF-8中
或者,将Eclipse项目更改为以UTF-8格式保存文件。
Eclipse中的每个源文件也可以有不同的编码,所以也要检查一下,但最好不要使用这种编码,因为在Eclipse之外编译将非常复杂。
然后,当您选择以“Java应用程序”或“Groovy脚本”的形式运行程序时,Eclipse将创建一个“运行配置”对象。您可以通过选择Run
runconfigurations…
下拉菜单来查看它们
运行配置有一个“公共”选项卡。确保配置为以UTF-8显示输出。
当这一切完成后,您的代码将运行良好。
请注意,我在美国,因此我的默认编码是cp1252
,如图所示,但当我将Eclipse配置为执行UTF-8
时,我仍然可以很好地执行这些字符
上述操作是在:
-月食4.5.1(火星1号)
-Groovy 2.3.10
-Java 1.8.0_91
-Windows 7 Pro SP1什么是“运行方式:Groovy脚本”和“运行方式:Java应用程序”?您使用什么命令行来实现这一点?还是一个IDE函数?那么,您不认为应该告诉我们哪个IDE?在保存.java
/.groovy
源文件时使用了什么字符编码?你告诉你的编译器了吗?在运行代码的地方使用什么字符编码?如果将源代码更改为System.out.println(“\u6D4B\u8BD5”)
,会发生什么?使用UTF-8编码的.java,一切都可以正常工作。但是,当我尝试使用UTF-8和Cp1252编码运行.groovy脚本时,我得到了µèè•
。对于系统.out.println(“\u6D4B\u8BD5”)
我得到了?
(当我以.groovy脚本运行时,无论文件有什么编码),每个源都可以有不同的代码页关联,或者默认为他的环境。我在波兰工作,时常遇到类似的问题。我想这与java groovy集成无关
System.out.println("\u6D4B\u8BD5");