我目前正在寻找Java中类似于OpenOffice的将字体识别为符号的可能性。
使用Windings或Webdings字体等的字符应该以正确的“图片”呈现。
有人知道如何区分普通字体和带有符号的字体吗?
关于窗口符号字体,Java无法显示所有字符的错误提示提供了一个独特于符号字体的特征。
它们是SYMBOL_CHARSET的一部分(即font.properties文件的WindowsCharsetName)
因此,[jdk1.6.0_10]\jre\lib\fontconfig.98.properties.src可能是确定字体名称是否与符号字体匹配并应通过Property.load()加载的第一个信息来源。
根据 VonC 的回答,我的字体属性文件中没有看到任何 SYMBOL_CHARSET
。
一个简单的测试似乎是 if( !java.awt.Font#canDisplay('a') )
。在我的 Windows 电脑上,我得到了一个包括平凡的 Symbol 和 Wingdings 以及像 "Estrangelo Edessa" 这样的奇特符号字体列表。