JOptionPane中的UTF-8字符不正确

时间:2013-04-29 06:43:07

标签: java swing utf-8 character-encoding jlabel

请查看以下示例代码,在Windows机器中正确显示的UTF-8字符。但是,它不适用于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);
  }
}

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

并非所有字体都包含完整的unicode字形集。 blob可能是字体不足的结果,但在java中很难确定实际使用的是什么字体,而且我不知道如何确定这些blob是否被发射,除非看到它们。

我在弹出菜单中遇到了unicode的大问题,这可能是一个非常类似的问题 对你的。

要尝试的两件事。

1)编写一个字体测试,以所有可用于java的字体显示字符串。 2)尝试使用非摆动组件。非摆动组件使用底层的OS字体支持。