有没有办法确定字体是否可以在 Cocoa 中呈现特定的 Unicode 字符?或者,是否可以指定默认替换字符?
问问题
1853 次
3 回答
3
查看CTFontGetGlyphsForCharacters
Core Text 框架。如果它为给定的 Unicode 字符的字形索引返回零,则该字体不支持该字符。如果找不到任何字形,该函数将返回 false。
于 2010-04-22T15:15:47.457 回答
3
您可以将 CGFontGetGlyphWithGlyphName() 用于 iOS 旧版本的 iOS (2.0)。Apple 似乎没有记录字形名称,但我相信它们对应于这个 Adobe 列表:
http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt
例如,é (U+00E9) 的字形命名为“eacute”,获取该字形的代码为:
CFStringRef name = CFStringCreateWithCString(NULL, "eacute", kCFStringEncodingUTF8);
CGGlyph glyph = CGFontGetGlyphWithGlyphName(font, name);
于 2010-11-29T19:54:40.240 回答
1
由于它在 iOS 上,您可能需要构建或查找执行此操作的应用程序。最终,如果任何单个字形的信息都存在于字体文件本身的表格中,那是相当低级的 C 工作。
构建一个检查字体并显示字形和字形索引(CGGlyph 或 NSGlyph 值)然后使用字形索引的工具要容易得多。
于 2015-11-26T21:18:56.933 回答