在AndroID上,我希望能够检测所使用的字体是否可以显示某个字符,但据我所知,这是不可能的,如 Check if custom font can display character所示的常规方法
为了检测这个,我正在写一个我要检查的字符到一个位图,然后我写另一个我知道的字符丢失到另一个位图并比较位图的内容.如果它们相等则缺少角色.
问题是,是否有任何unicode角色的字形(或多或少)保证在AndroID手机上常用的字体上缺失?
在维基百科上阅读它时,Unicode replacement character听起来很有希望:
It is used to indicate problems when a system is not able to render a
stream of data to a correct symbol. It is most commonly seen when a
Font does not contain a character,but is also seen when the data is
invalID and does not match any character
但是经过一些测试后,我发现这个角色并不是用来表示我的windows 7计算机或我测试过的AndroID手机(Motorola Atrix)上缺少的字形.
解决方法 用于呈现所用字体中缺少的字形的字形没有任何指定的Unicode值.在实际字体中,字形ID 0应始终为 .notdef glyph,用于缺少字形的所有字符.但是,这些信息不可能来自AndroID上的字体,因此无法直接使用.notdef字形.在Unicode中有许多保留/未分配的代码点,我的有限测试表明这些代码点是使用.notdef字形呈现的.因此,通过使用@L_502_4@(Devanagari block中间的保留代码点),我可以检测到我想要测试的字体中是否存在其他有效的已知字符.
这不是一个未来的证明解决方案,因为Unicode Consortium将来可能会将新的字形添加到保留的代码点.但是对于我的需求来说,它已经足够好了,因为我想做的事情是在不久的将来不再相关的临时事情.
更新:
看看U 0978的解决方案并不长久.该字符在Unicode 7.0版本的June 2014中添加.另一个选项是使用unicode中存在的字形,但不太可能以普通字体使用.
Early Dynastic Cuneiform块中的U+124AB可能是许多字体中根本不存在的东西.
总结以上是内存溢出为你收集整理的android – 在所有字体中是否缺少任何unicode字符的字形?全部内容,希望文章能够帮你解决android – 在所有字体中是否缺少任何unicode字符的字形?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)