2

我试图在 a 中显示 Unicode 字符\u1e41(带点的 m)JLabel,结果是一个小方块,表示该字符无法显示。在其他默认的 Windows 应用程序(记事本等)中,这是可能的。我发现该字符在我所有的 JRE 安装(文件fontconfig.properties.src)中都在第一个排除范围内:

exclusion.alphabetic=0700-1e9f,1f00-20ab,20ad-f8ff

我将此行更改为:exclusion.alphabetic=0700-1e40,1e42-1e9f,1f00-20ab,20ad-f8ff

并将文件重命名fontconfig.properties.srcfontconfig.properties. 这使我的应用程序能够显示此字符。现在,我想知道:

  1. 为什么默认情况下排除此范围?
  2. 有什么方法可以在不更改 JRE 的情况下显示此字符,或者我可以通过编程方式更改此设置吗?
  3. 如果 2 不可能,像我一样设置 fontconfig 文件是否危险?我问这个,因为我认为 fontconfig 文件可能包含对我的应用程序有副作用的设置。或者该文件是否始终包含 JRE 的默认设置(因此,如果我在不修改的情况下重命名文件,它不会有任何影响)?

以供参考...

  • 机器:Windows 7 64 位
  • JRE 版本:1.7.0、1.6.0_25、1.6.0._25 / 所有 32 位
4

0 回答 0