gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:10:34 26 4
gpt4 key购买 nike

在我的 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"/>

最佳答案

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

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

注意

除非应用程序。正在提供适合所显示语言的字体,每次运行该代码并选择已安装的字体是有意义的,每次应用程序。运行。安装的字体会随着时间的推移在不同的计算机上发生变化。

关于java - HTML 格式的 JLabel 上的古吉拉特语 Unicode 文本不起作用(方框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50242567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com