HTML格式的JLabel上的古吉拉特语Unicode文本不起作用(方框)

时间:2018-05-08 21:33:42

标签: java html swing fonts jlabel

在我的JLabel / JButton组件等上。我使用HTML格式化文本。除了古吉拉特语之外,这种方法在所有语言中都能很好地工

我使用普通的ASCII字母来编码古吉拉特语字母,例如:

\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0 

将解码为:

મુશ્કેલી

当我将文字放在JLabel

上时
myJLabel.setText("\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0") 

该文本很好地呈现给古吉拉特语。

但是当我为了格式化文本而将html标签合并到它时,它就不再起作用了,并且显示了方框(所有其他语言都用html很好地呈现,包括阿拉伯语和西里尔字母)。一旦我使用带有古吉拉特语字母的html标签,这就不再起作用了,打印方框(未知字符):

myJLabel.setText("<html>\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0<\html>")

我已经使用过我发现的这个问题的几个提示,例如以下几个,但没有成功:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

1 个答案:

答案 0 :(得分:2)

使用此代码输出中显示的一种字体:

page-tests1 {
}
  ion-row {
    text-align: center;
  }
  .image-title {
    position: absolute;
    top: 25%;
    font-size: 2em;
    width: 100%;
    font-weight: bold;
    color: white;
  }

结果此处

import java.awt.Font;
import java.awt.GraphicsEnvironment;

public class GujaratiFonts {

    public static void main(String[] args) {
        String gujaratiText
                = "\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0";
        Font[] fonts = GraphicsEnvironment.
                getLocalGraphicsEnvironment().getAllFonts();
        int count = 0;
        for (Font font : fonts) {
            if (font.canDisplayUpTo(gujaratiText) < 0) {
                System.out.println(font.getName() + " can print this.");
                count++;
            }
        }
        System.out.println("Supported Fonts: \t" + count);
        System.out.println("Installed Fonts: \t" + fonts.length);
    }
}

注意

除非应用程序。提供适合所显示语言的Arial Unicode MS can print this. Nirmala UI can print this. Nirmala UI Bold can print this. Nirmala UI Semilight can print this. Supported Fonts: 4 Installed Fonts: 440 ,运行该代码和放大器是有意义的。选择已安装的字体,每次应用时都选择。运行即可。安装的字体将随着时间的推移在不同的计算机上发生变化。