【发布时间】:2020-01-01 16:48:50
【问题描述】:
我尝试了各种方法,但没有任何效果。 Netbeans 始终显示“?”而不是符号本身 ♤ ♡ ♢ ♧
我的项目是 UTF-8 编码的。
我将输出窗口的字体更改为 Segoe UI Symbol。 它仍在打印
我的代码:
【问题讨论】:
-
我根据您的反馈更新了我的答案。
标签: java maven netbeans unicode utf-8
我尝试了各种方法,但没有任何效果。 Netbeans 始终显示“?”而不是符号本身 ♤ ♡ ♢ ♧
我的项目是 UTF-8 编码的。
我将输出窗口的字体更改为 Segoe UI Symbol。 它仍在打印
我的代码:
【问题讨论】:
标签: java maven netbeans unicode utf-8
您可能只需要为 输出 窗口指定一种可以呈现字符“♤ ♡ ♢ ♧”的字体。一种这样的字体是 Segoe UI Symbol,并将其设置为 Output 窗口中的字体:
然后再次运行您的应用程序,字符将在输出窗口中正确呈现:
如果这不能解决您的问题,请更新您的问题以显示您的代码。
根据 OP 反馈于 20 年 1 月 5 日更新:
在输出窗口中渲染扑克牌符号:
-J-Dfile.encoding=UTF-8 附加到 netbeans_default_options 的属性值末尾(就在结束引号之前)。System.out 使用的 PrintStream 必须支持 UTF-8。这可以通过两种不同的方式实现:
-Dfile.encoding=utf-8,以便默认的 PrintStream 在运行时使用 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);
}
}
当项目的VM Options设置为-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
------------------------------------------------------------------------
注意事项:
【讨论】: