gpt4 book ai didi

使用 Microsoft OpenJDK 升级到 Java 17 后的 Java 编码问题

转载 作者:行者123 更新时间:2023-12-05 02:38:38 24 4
gpt4 key购买 nike

在我使用 Microsoft OpenJDK 升级到 Java 17 之后,所有使用非 ASCII 字符的测试都因编码失败问题而失败。

例如,我的一个测试使用了以下 Unicode 字符(例如,U+2660 到 U+2663):

entityManager.persist(
new Suit()
.setName("Club")
.setSymbol("♣")
);

entityManager.persist(
new Suit()
.setName("Diamond")
.setSymbol("♦")
);

entityManager.persist(
new Suit()
.setName("Heart")
.setSymbol("♥")
);

entityManager.persist(
new Suit()
.setName("Spade")
.setSymbol("♠")
);

如何解决?

最佳答案

在使用微软构建的 OpenJDK 升级到 Java 17 版本时,我也遇到了问题,因为 Java 源文件现在使用默认的 Windows 编码而不是 UTF-8 进行编码。

要解决此问题,请将 file.encoding 属性设置为 UTF-8

最简单的方法是设置 MAVEN_OPTS 环境变量:

MAVEN_OPTS=-Dfile.encoding=UTF-8

另一种选择是将其传递给 Maven Surefire 插件:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>

而且,如果您想启动 Java 程序,则传递 -Dfile.encoding=UTF8 属性。

关于使用 Microsoft OpenJDK 升级到 Java 17 后的 Java 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69492709/

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