nib*_*ius 7 unicode fonts android
在Android上,我希望能够检测所使用的字体是否可以显示某个字符,但据我所知,这是不可能的常规方法,如检查自定义字体是否可以显示字符
为了检测这个,我正在写一个我要检查的字符到一个位图然后我写另一个我知道的字符丢失到另一个位图并比较位图的内容.如果它们相等,则字符丢失.
问题是,是否有任何unicode角色的字形(或多或少)保证在Android手机上常用的字体上缺失?
在维基百科上阅读它时,Unicode替换字符听起来很有前途:
当系统无法将数据流呈现为正确的符号时,它用于指示问题.最常见的情况是字体不包含字符,但在数据无效且与任何字符都不匹配时也会看到
然而,经过一些测试后,我发现这个角色并不是用来表示我的Windows 7计算机或我测试过的Android手机(摩托罗拉Atrix)上缺少的字形.
没有任何指定的字形 Unicode 值用于呈现所用字体中缺少的字形。在实际字体中,字形 id 0 应始终是.notdef 字形,用于所有缺少字形的字符。然而,这个信息不可能来自 Android 上的字体,因此不可能直接使用 .notdef 字形。
在 Unicode 中,有许多保留/未分配的代码点,我有限的测试表明这些代码点是使用 .notdef 字形呈现的。因此,通过使用U+0978 (梵文块中间的保留代码点),我可以检测我想要测试的字体中是否存在其他有效的已知字符。
这不是一个面向未来的解决方案,因为 Unicode 联盟将来可能会将新的字形添加到保留的代码点中。但对于我的需求来说,这已经足够好了,因为我想做的是暂时的事情,在不久的将来不再相关。
更新:
查看 U+0978 的解决方案并没有持续很长时间。该字符是在2014 年 6 月发布的Unicode 7.0版本中添加的。另一种选择是使用 unicode 中存在的字形,但不太可能在普通字体中使用。
早王朝楔形文字块中的U+124AB可能在许多字体中根本不存在。
| 归档时间: |
|
| 查看次数: |
2936 次 |
| 最近记录: |