GUI:如何确定是不是支持某些 Unicode 字符?

Posted

技术标签:

【中文标题】GUI:如何确定是不是支持某些 Unicode 字符?【英文标题】:GUI: How can I find out if certain Unicode characters are supported?GUI:如何确定是否支持某些 Unicode 字符? 【发布时间】:2011-06-01 06:02:33 【问题描述】:

我注意到 Metal L&F 不支持 Unicode 中的某些箭头字符,而 Nimbus 和 GTK L&F 确实支持它们。

不支持的字符只显示为:...

我可以

    要么查找(手动)L&F 支持哪些 Unicode 字符, 还是在运行时发现?

编辑: 或者,如果它只依赖于 L&F 的默认字体,我的问题可能应该是:“我如何找出哪些 Java 字体支持哪些 Unicode 字符?”

【问题讨论】:

我不是专家,但这可能是由于 Metal/Ocean 使用的默认字体。 我很确定是字体决定了支持哪些字符。 【参考方案1】:

您可以使用canDisplay 方法测试java.awt.Font 对象是否可以显示给定字符。 您通常可以使用 getFont() 方法从 GUI 组件中获取字体。

【讨论】:

太棒了!而已! download.oracle.com/javase/6/docs/api/java/awt/…【参考方案2】:

如果你知道哪个 unicode 块包含你需要的箭头,你可以查一下here。不幸的是,似乎没有更新 JDK 的页面。

【讨论】:

很遗憾,链接现在已损坏。【参考方案3】:

使用这段代码,您几乎可以使用所有 Unicode ta.setFont(new java.awt.Font("Segoe UI Emoji", 1, 20));

【讨论】:

以上是关于GUI:如何确定是不是支持某些 Unicode 字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何识别字符串是不是包含 unicode 字符?

如何判断一个字符串是不是是unicode编码?

字节流和字符流的比较。

MessageBox 从 TCHAR 缓冲区打印额外的 unicode 字符

确定字节数组是不是包含 ANSI 或 Unicode 字符串?

如何检查字节数组是不是包含 Java 中的 Unicode 字符串?