gpt4 book ai didi

java - 如何使符号出现在 Maven 项目的 Netbeans 输出中?

转载 作者:行者123 更新时间:2023-12-01 19:06:00 26 4
gpt4 key购买 nike

我已经尝试了各种方法,但没有任何效果。Netbeans 始终显示“?”而不是符号本身 ♤ ♡ ♢ ♧

我的项目编码为 UTF-8。

我将输出窗口的字体更改为 Segoe UI 符号。它仍然打印 < ? >

我的代码:

Screen shot of code

最佳答案

您可能只需要为输出窗口指定一种可以呈现字符“♤ ♡ ♢ ♧”的字体。其中一种字体是 Segoe UI Symbol,并将其设置为输出窗口中的字体:

  • 工具 > 选项 > 其他 > 单击输出选项卡>字体
  • 将字体设置为 Segoe UI Symbol,然后单击确定

然后再次运行您的应用程序,字符将在输出窗口中正确呈现:

outputWindow

如果这不能解决您的问题,请更新您的问题以显示您的代码。

<小时/>

根据 OP 反馈,于 2020 年 1 月 5 日更新:

  • 更改字体没有帮助,事后看来,这也没有必要。
  • 该问题仅与 NetBeans 中的 Maven 项目有关。 Ant项目不存在这个问题。

输出窗口中渲染扑克牌符号:

  • 在 NetBeans 配置文件 etc/netbeans.conf 中,将 -J-Dfile.encoding=UTF-8 附加到 属性值的末尾netbeans_default_options(就在收盘价之前)。
  • 保存更改,然后重新启动 NetBeans。
  • System.out 使用的 PrintStream 必须支持 UTF-8。这可以通过两种不同的方式来实现:
    1. 打开项目的属性,然后为属性 > 运行 > VM 选项设置-Dfile.encoding=utf-8,以便默认的PrintStream 在运行时使用 UTF-8 编码。
    2. 或者,在代码中创建并使用 UTF-8 PrintStream。详情请参阅下面的代码。

代码如下:

package com.unthreading.emojimaven;

import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.nio.charset.Charset;

public class App {

public static void main(String[] args) throws UnsupportedEncodingException {

String symbPique = "\u2660";
String symbCoeur = "\u2665";
String symbCarreau = "\u2666";
String symbTrefle = "\u2663";

System.out.println("System.getProperty(\"file.encoding\")=" + System.getProperty("file.encoding"));
System.out.println("StandardCharsets.UTF_8.name(): " + StandardCharsets.UTF_8.name());
System.out.println("Charset.defaultCharSet()=" + Charset.defaultCharset());
System.out.println("Default PrintStream: " + symbCarreau + "--" + symbCoeur + "--" + symbPique + "--" + symbTrefle);

PrintStream outStream = new PrintStream(System.out, true, StandardCharsets.UTF_8.name());
outStream.println("UTF-8 PrintStream: " + symbCarreau + "--" + symbCoeur + "--" + symbPique + "--" + symbTrefle);
}
}

以下是项目的虚拟机选项设置为-Dfile.encoding=utf-8时的输出:

------------------------------------------------------------------------
Building emojimaven 1.0-SNAPSHOT
------------------------------------------------------------------------

--- exec-maven-plugin:1.5.0:exec (default-cli) @ emojimaven ---
System.getProperty("file.encoding")=UTF-8
StandardCharsets.UTF_8.name(): UTF-8
Charset.defaultCharSet()=UTF-8
Default PrintStream: ♦--♥--♠--♣
UTF-8 PrintStream: ♦--♥--♠--♣
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 0.717 s
Finished at: 2020-01-05T00:21:16-05:00
Final Memory: 7M/60M
------------------------------------------------------------------------

注释:

  • netbeans.conf 的更改至关重要,以便 NetBeans 在启动期间将输出窗口配置为 UTF-8。
  • 输出窗口的默认字体是等宽字体。由于这可以正确渲染扑克牌符号,因此无需更改它,至少对于 OP 中给出的要求而言是如此。
  • 无需在 pom.xml 中进行任何特殊设置。

关于java - 如何使符号出现在 Maven 项目的 Netbeans 输出中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554306/

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