gpt4 book ai didi

java - 从 Java 在终端中显示西装符号

转载 作者:行者123 更新时间:2023-12-02 01:47:42 26 4
gpt4 key购买 nike

我有一个关于在运行 Java 程序时在终端窗口显示花色符号 (ASCII)(红心、菱形、黑桃和梅花)的问题。我目前使用 JCreator V3 LE。我使用的JDK是1.8.0_172。

过去,我使用的语法是:

Character.toString((char) 3)
Character.toString((char) 4)
Character.toString((char) 5)
Character.toString((char) 6)

现在,它显示一个带有 ? 的框。就好像找不到这个角色一样。还有其他方法可以做到这一点,或者这个字符已从窗口中删除吗?

谢谢。

最佳答案

与所有文本传输一样,您的 Java 程序(写入器)和终端(读取器)需要位于同一页面上,即“代码页”(字符编码)。你说的是 ASCII 但 ASCII 不支持你想要使用的字符。您可能会想到 MS-DOS 和 Windows 中的 CP437。 (MS-DOS 没有 ASCII 代码页;Windows 为了完整性起见,很晚才得到一个代码页。ASCII 仅在非常专门的上下文中使用。)

如果您想摆脱 Java 的字符转码,您可以将字节写入输出流。然后无论它们对终端意味着什么,它都会将它们解码为字符。

// for illustration purposes only; I would not invest in code like this.
System.out.flush();
System.out.write(0x03);
System.out.flush();

要真正看到它们,终端必须具有包含解码字符的字体。白色框或带问号的框表示该字体没有。问号或黑色菱形中的问号表示这些字节在终端的字符编码中没有任何意义。

要检查终端的字符编码,请转至 chcp (Windows) 或 locale(大多数其他操作系统)。

正如 @VGR 在评论中所说,GUI 更简单。这是因为它们避免了以特定字符编码创建文本字节流的概念,而仅使用窗口系统的工具来绘制文本。 (这是以无法将输出传送到另一个程序或将其重定向到文件为代价的,而这是 CUI 程序的一个关键功能。)

关于java - 从 Java 在终端中显示西装符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53524202/

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