我有一台Win7(64bit)计算机,如果使用Tahoma作为字体,它会在Java应用程序中以正方形而不是ligature-ff(Unicode FB00)和ligature-ffi(Unicode FB03)呈现文本。相同的应用程序在Win10下的Tahoma中完美地呈现了相同的字符。
使用charmap我发现在Tahoma(Win7)中确实没有这种字符,而在Win10-Tahoma中却存在。
BUT Word和Win7上我的应用程序的较旧版本(使用Java 8而不是11)至少使用其他字体的连字(Word:Cambria Math,OldApp:ArialUnicodeMS),这就是为什么它从未脱颖而出以前对我来说。
Windows7拥有Tahoma 5.22,而Win10拥有Tahoma 6.9-我不知道它们的版本不同(为什么?)。
有人愿意解释替换未知字符(从另一种字体获取它们,然后将它们渲染为正方形)的不同行为吗?微软拥有全系统的Fallback字体,但是IE,Word和N ++都以不同的方式处理Tahoma + ligature-ff的呈现,所以似乎并没有太大作用。
答案 0 :(得分:0)
是的。我最近遇到了同样的问题。字体字符集在不同的OS版本中是不同的,并且没有在任何地方标记!我花了很多天的时间来争取从我发现的每个来源应包含的字体中显示一个简单的字符。 (带有卡纸的G。Win10附带了Courier New,但XP中没有Courier New。)
仅将版本号添加到字体文件有多难??要弄清楚,只需相信角色图即可。它显示字体具有的所有字符。
这很容易解决。在计算机上安装具有所需char字体版本的计算机。转到WINDOWS \ FONTS,然后将所需的字体文件复制粘贴到另一台计算机上。
如果需要,可以用相同的方法在计算机上更新所有字体。