gpt4 book ai didi

java - 在Java中如何检测unicode图像是否可以在JButton中显示?

转载 作者:行者123 更新时间:2023-11-30 05:34:38 24 4
gpt4 key购买 nike

我发现了这个问答:Detect when a unicode character cannot be displayed correctly

但它不是用 Java 编写的。

我有以下代码:

int codePoint=Integer.parseInt(unicodeText,16);
byte eBytes[]=new String(Character.toChars(codePoint)).getBytes(StandardCharsets.UTF_8);
String str=new String(eBytes,Charset.forName("UTF-8"));

JButton button=new JButton(str);

它可以在 JButton 上显示 unicode 图像,如下所示:

enter image description here

因此,如果您将 unicodeText 设置为“1F602”之类的内容,它可以在按钮上显示图像。

我的问题是:

<1> 我尝试了 Java 8 和 Java 12,结果是相同的,它们缺少某些 unicode 中的相同图像,为什么?可以做什么来使丢失的图像显示出来,似乎 Java 升级没有做到这一点。

<2> 如何从我的 Java 应用程序中检测哪些 unicode 无法显示?

最佳答案

这取决于字体,所以使用Font::canDisplayUpTo

所以实际上,捕获你的字体并尝试以下操作:

JButton button = new JButton(str);
Font font = button.getFont();
int failingIndex = font.canDisplayUpTo(str);
if (failingIndex >= 0) {
// failingIndex points to the first codepoint in your string that cannot be represented with the font.
} else {
// This string can be displayed with the given font.
}

因此,如果字体无法按预期呈现字符,请使用其他可以的字体。

关于java - 在Java中如何检测unicode图像是否可以在JButton中显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56874439/

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