Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解释以下Java/Groovy行为_Java_Groovy_Character Encoding - Fatal编程技术网

解释以下Java/Groovy行为

解释以下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、 例如,在

代码:

场景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、 例如,在这种情况下更改为
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");