请看下面的示例代码,UTF-8字符在windows机器上正常显示。但是,它不适用于 Linux 机器 (Ubuntu)。
import javax.swing.JOptionPane;
public class JContPaneTest
{
public static void main(String[] args)
{
JOptionPane.showMessageDialog(null, "\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\u30c7\u30fc\u30bf\u30d9\u30fc", "Error",JOptionPane.ERROR_MESSAGE);
}
}
有什么办法可以解决这个问题吗?
最佳答案
并非所有字体都包含完整的 unicode 字形集。这些 Blob 可能是字体不足的结果,但在 Java 中很难确定实际使用的是什么字体,而且我不知道有什么方法可以确定这些 Blob 是否被发出,除非通过查看它们。
我在弹出菜单中遇到了 unicode 的巨大问题,这可能是一个非常相似的问题 给你的。
2 件事要尝试。
1) 编写一个字体测试以在 java 可用的所有字体中显示您的字符串。 2)尝试使用非 Swing 组件。非 swing 组件使用底层操作系统字体支持。
关于java - UTF-8 字符在 JOptionPane 中不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16272666/