NetBeans 12 UTF-8 中文输出与 Maven 项目
NetBeans 12 UTF-8 Chinese output with Maven projects
如何将 Maven 项目的输出控制台设置为 UTF-8?
出现这个问题是因为 NetBeans 没有正确解码 UTF-8 文档(北欧字符,如 áðíøåú 等)。通过在互联网上进行一些搜索,我通过设置 -J-Dfile.encoding=UTF-8
找到了解决方案。现在我可以查看和编辑使用 UTF-8 编码的文件了。
帮助 -> 现在显示关于
Product Version: Apache NetBeans IDE 12.4
Java: 16.0.1; OpenJDK 64-Bit Server VM 16.0.1+9-24
Runtime: OpenJDK Runtime Environment 16.0.1+9-24
System: Windows 10 version 10.0 running on amd64; UTF-8; en_US (nb)
-J-Dfile.encoding=UTF-8
是通过将其添加到 netbeans.conf
中的 netbeans_default_options
末尾设置的。
这改变了
System: Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb)
至:
System: Windows 10 version 10.0 running on amd64; UTF-8; en_US (nb)
但是输出没有正确显示北欧字符。
如果我单击左侧的 settings 按钮(见下图),Maven 选项对话框将打开,但是我看不到设置输出编码的位置。 Maven Home 设置为 Bundled。
在 Linux (Debian 10) 上,输出工作正常,无需任何额外配置。
帮助来自评论
按照我的建议先运行
System.out.println(System.getProperty("file.encoding"));
显示Cp1252
。为什么会这样?
第二次测试使用:
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
...
PrintStream out = new PrintStream(System.out, true, StandardCharsets.UTF_8);
System.out.println("读写汉字");
显示????
。同样,当 StandardCharsets
设置为 UTF_8
时为什么会发生这种情况?
我尝试将 -Dfile.encoding=UTF-8
添加到 项目属性 -> 运行 -> VM 选项 ,但输出仍然没有变化。
我尝试的最后一件事是再次从 netbeans.conf
中删除 -J-Dfile.encoding=UTF-8
。检查帮助 -> 关于再次显示 Cp1252
.
我在项目 src 文件夹中创建了一个文件,在 Notepad++ 中使用 UTF-8 编码并在 NetBeans 中打开它。令我惊讶的是,它显示了正确的字符。然而,当我打开一个项目之外的 UTF-8 编码文件时,这个惊喜变成了 ahh。现在北欧字符显示不正确。通过将 -J-Dfile.encoding=UTF-8
添加回 netbeans.conf
的末尾,北欧字符再次正确显示。汉字也一样。
然后我 运行 建议的测试,再次令我惊讶的是 file.encoding
属性 的输出是 UTF-8
。但是第二次测试仍然显示 ????
.
我注意到输出中有一个变化 window。第一行是
cd C:\..\NetBeansProjects\..\; JAVA_HOME=E:\...\jdk-16.0.1 cmd /c "\"C:\...\netbeans\java\maven\bin\mvn.cmd\" -Dtest=ubl.InvoiceTest#outputTest -Dmaven.ext.class.path=C:\...\netbeans\java\maven-nblib\netbeans-eventspy.jar -Dfile.encoding=UTF-8 surefire:test"
选项-Dfile.encoding=UTF-8
接近行尾。如果我将 -J-Dfile.encoding=UTF-8
添加到 netbeans.conf
第一行以 ... netbeans-eventspy.jar surefire:test". -Dfile.encoding=UTF-8 不存在。为什么会这样?
Maven 项目
我面临的问题并非直接归因于 NetBeans。相反,它是 NetBeans 和 Maven 的组合。
- 要使 NetBeans 正确显示 UTF-8 编码文件字符,需要将选项
-J-Dfile.encoding=UTF-8
添加到 netbeans.conf
文件中 netbeans_default_options
变量的末尾。
- 要使输出显示北欧字符,Maven 项目 的项目设置 需要设置为 UTF-8(并且
-J-Dfile.encoding=UTF-8
从 netbeans.conf
中删除(如果已设置)。
这使得汉字问题仍然悬而未决。
我已经测试过将 Maven 项目设置为 UTF-16、UTF-32 和 Big5,但没有成功显示中文字符。还尝试了一些字体更改(Monospaced、NSimSun、SimSun、Source Serif Pro、Source Code Pro 和 Noto Sans),但没有成功。
感谢
andrewjames and skomisa感谢他们的努力。
这个解决方案适用于北欧字符的初始问题,而汉字的问题仍然悬而未决。
- 要使 NetBeans 正确显示 UTF-8 编码的文件字符,需要将选项
-J-Dfile.encoding=UTF-8
添加到 netbeans.conf
文件中的 netbeans_default_options
变量的末尾,该文件位于/etc
. 下的 NetBeans 安装文件夹
- 为了使输出正确显示北欧字符,需要将 Maven 项目的项目设置设置为
UTF-8
(如果设置,-J-Dfile.encoding=UTF-8
将从 netbeans.conf
中删除)。这可以通过右键单击项目并选择 Properties 来完成。单击 来源 类别。您可以在此处选择要使用的 Encoding。此设置适用于当前项目。
如何将 Maven 项目的输出控制台设置为 UTF-8?
出现这个问题是因为 NetBeans 没有正确解码 UTF-8 文档(北欧字符,如 áðíøåú 等)。通过在互联网上进行一些搜索,我通过设置 -J-Dfile.encoding=UTF-8
找到了解决方案。现在我可以查看和编辑使用 UTF-8 编码的文件了。
帮助 -> 现在显示关于
Product Version: Apache NetBeans IDE 12.4
Java: 16.0.1; OpenJDK 64-Bit Server VM 16.0.1+9-24
Runtime: OpenJDK Runtime Environment 16.0.1+9-24
System: Windows 10 version 10.0 running on amd64; UTF-8; en_US (nb)
-J-Dfile.encoding=UTF-8
是通过将其添加到 netbeans.conf
中的 netbeans_default_options
末尾设置的。
这改变了
System: Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb)
至:
System: Windows 10 version 10.0 running on amd64; UTF-8; en_US (nb)
但是输出没有正确显示北欧字符。
如果我单击左侧的 settings 按钮(见下图),Maven 选项对话框将打开,但是我看不到设置输出编码的位置。 Maven Home 设置为 Bundled。
在 Linux (Debian 10) 上,输出工作正常,无需任何额外配置。
帮助来自评论
按照我的建议先运行
System.out.println(System.getProperty("file.encoding"));
显示Cp1252
。为什么会这样?
第二次测试使用:
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
...
PrintStream out = new PrintStream(System.out, true, StandardCharsets.UTF_8);
System.out.println("读写汉字");
显示????
。同样,当 StandardCharsets
设置为 UTF_8
时为什么会发生这种情况?
我尝试将 -Dfile.encoding=UTF-8
添加到 项目属性 -> 运行 -> VM 选项 ,但输出仍然没有变化。
我尝试的最后一件事是再次从 netbeans.conf
中删除 -J-Dfile.encoding=UTF-8
。检查帮助 -> 关于再次显示 Cp1252
.
我在项目 src 文件夹中创建了一个文件,在 Notepad++ 中使用 UTF-8 编码并在 NetBeans 中打开它。令我惊讶的是,它显示了正确的字符。然而,当我打开一个项目之外的 UTF-8 编码文件时,这个惊喜变成了 ahh。现在北欧字符显示不正确。通过将 -J-Dfile.encoding=UTF-8
添加回 netbeans.conf
的末尾,北欧字符再次正确显示。汉字也一样。
然后我 运行 建议的测试,再次令我惊讶的是 file.encoding
属性 的输出是 UTF-8
。但是第二次测试仍然显示 ????
.
我注意到输出中有一个变化 window。第一行是
cd C:\..\NetBeansProjects\..\; JAVA_HOME=E:\...\jdk-16.0.1 cmd /c "\"C:\...\netbeans\java\maven\bin\mvn.cmd\" -Dtest=ubl.InvoiceTest#outputTest -Dmaven.ext.class.path=C:\...\netbeans\java\maven-nblib\netbeans-eventspy.jar -Dfile.encoding=UTF-8 surefire:test"
选项-Dfile.encoding=UTF-8
接近行尾。如果我将 -J-Dfile.encoding=UTF-8
添加到 netbeans.conf
第一行以 ... netbeans-eventspy.jar surefire:test". -Dfile.encoding=UTF-8 不存在。为什么会这样?
Maven 项目
我面临的问题并非直接归因于 NetBeans。相反,它是 NetBeans 和 Maven 的组合。
- 要使 NetBeans 正确显示 UTF-8 编码文件字符,需要将选项
-J-Dfile.encoding=UTF-8
添加到netbeans.conf
文件中netbeans_default_options
变量的末尾。 - 要使输出显示北欧字符,Maven 项目 的项目设置 需要设置为 UTF-8(并且
-J-Dfile.encoding=UTF-8
从netbeans.conf
中删除(如果已设置)。
这使得汉字问题仍然悬而未决。 我已经测试过将 Maven 项目设置为 UTF-16、UTF-32 和 Big5,但没有成功显示中文字符。还尝试了一些字体更改(Monospaced、NSimSun、SimSun、Source Serif Pro、Source Code Pro 和 Noto Sans),但没有成功。
感谢
andrewjames and skomisa感谢他们的努力。
这个解决方案适用于北欧字符的初始问题,而汉字的问题仍然悬而未决。
- 要使 NetBeans 正确显示 UTF-8 编码的文件字符,需要将选项
-J-Dfile.encoding=UTF-8
添加到netbeans.conf
文件中的netbeans_default_options
变量的末尾,该文件位于/etc
. 下的 NetBeans 安装文件夹
- 为了使输出正确显示北欧字符,需要将 Maven 项目的项目设置设置为
UTF-8
(如果设置,-J-Dfile.encoding=UTF-8
将从netbeans.conf
中删除)。这可以通过右键单击项目并选择 Properties 来完成。单击 来源 类别。您可以在此处选择要使用的 Encoding。此设置适用于当前项目。