4

有没有办法确定字体是否可以在 Cocoa 中呈现特定的 Unicode 字符?或者,是否可以指定默认替换字符?

4

3 回答 3

3

查看CTFontGetGlyphsForCharactersCore Text 框架。如果它为给定的 Unicode 字符的字形索引返回零,则该字体不支持该字符。如果找不到任何字形,该函数将返回 false。

于 2010-04-22T15:15:47.457 回答
3

您可以将 CGFontGetGlyphWithGlyphName() 用于 iOS 旧版本的 iOS (2.0)。Apple 似乎没有记录字形名称,但我相信它们对应于这个 Adob​​e 列表:

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 回答