java – 将项目设置为UTF-8编码,默认字符集返回windows-1252
我遇到了编码问题.不确定它是否与IDE有关,但我使用的是NetBeans 7.4.我在J2EE项目中得到了这段代码:
String test = "kuku?i?né"; System.out.println(new String(test.getBytes("UTF-8"))); // should display ok System.out.println(new String(test.getBytes("ISO-8859-1"))); System.out.println(new String(test.getBytes("UTF-16"))); System.out.println(new String(test.getBytes("US-ASCII"))); System.out.println(new String(test.getBytes("windows-1250"))); System.out.println(test); // should display ok 当我运行它时,它永远不会正常显示. UTF-8应该可以打印出来,但不是.当我尝试时: System.out.println(Charset.defaultCharset()); 它返回了windows-1252.该项目设置为UTF-8编码.我甚至尝试在UTF-8中重新保存这个特定的java文件,但它仍然无法正常显示. 另一方面,我试图创建J2SE项目,当我运行相同的代码时,它正确显示.默认字符集也返回UTF-8. 两个项目都设置了UTF-8编码. 我希望我的J2EE项目像J2SE一样运行.直到我将我的java更新到版本1.7.0_51-b13之前我才注意到这个问题但是我不确定这是否相关. 我遇到了像这个家伙一样的问题:http://forums.netbeans.org/ptopic37752.html 我也尝试过为整个IDE设置默认编码:-J-Dfile.encoding = UTF-8但它没有帮助. 我注意到一个重要的事实.当我创建一个新的Web应用程序时,它显示正常.当我创建新的Maven Web应用程序时,它显示不正确. 在这里发现了同样的问题:https://netbeans.org/bugzilla/show_bug.cgi?id=224526 我还没有修好它.仍然没有解决方案. 在我的pom.xml中,编码设置正确,但最后仍显示windows-1252. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 解决方法
我花了几个小时试图找到最好的解决方案.
首先,这是一个maven的问题,即使你已经指定了不同的编码使用,它也会选择平台编码并使用它. Maven似乎并不关心(它甚至打印到控制台,它使用的是UTF-8,但是当您使用上面的代码运行文件时,它将无法正常显示). 我设法通过设置系统变量来解决这个问题: JAVA_TOOL_OPTIONS = -Dfile.encoding = UTF8 应该有另一个选项而不是设置系统变量,即将其设置为附加的编译器参数. 比如javac -Dfile.encoding = UTF8 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |