我们被要求编写一个程序来读取文本文件并显示 Unicode 字符的摘要。在执行此操作时,我遇到了一些 Unicode 字符的问题,这些字符在我的控制台中显示为问号。但是,当我使用 Swing 输出相同的 Unicode 文本时,它不再是问号了
System.out.println("\u0126"); // appears to be ? in my console.
JOptionPane.showMessageDialog(null,"\u0126"); // seems to display the character successfuly
因为我要使用 GUI,所以我可以把问题抛在脑后,但我想要一个解释,一些像我这样的初学者可以理解的东西。
为什么有些 Unicode 字符在控制台打印时显示为问号,但在 Swing 中打印不正确? (Eclipse、NetBeans、JCreator、JGrasp 都这样做,我认为是我的 IDE 有问题)。
是编码问题还是字体问题?我应该怎么做才能在控制台中成功显示 Unicode 文本,而不会在将来遇到任何问号问题?
最佳答案
UNICODE 生成的字符将取决于作为您正在使用的字体一部分的字符字形。大多数字体只有完整 UNICODE 标准的一个子集。例如,如果你想显示简体中文,你使用的字体必须有简体中文的字形。
UNICODE Consortium有一些关于这方面的信息。
关于java - 为什么某些 Unicode 字符在控制台中显示为问号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18856056/