9

请找到以下示例代码,在 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);
  }
}

有没有办法解决这个问题?

4

1 回答 1

2

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

我在弹出菜单中遇到了 unicode 的巨大问题,这可能与您的问题非常相似。

2 件事要尝试。

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

于 2013-04-30T19:27:16.360 回答