gpt4 book ai didi

java - 项目编码设置为 UTF-8,默认字符集返回 windows-1252

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:55 25 4
gpt4 key购买 nike

我遇到了编码问题。不确定它是否与 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

关于java - 项目编码设置为 UTF-8,默认字符集返回 windows-1252,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22464028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com