代码之家  ›  专栏  ›  技术社区  ›  conmulligan

确定字体是否可以在cocoa touch中呈现unicode字符

  •  4
  • conmulligan  · 技术社区  · 16 年前

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

    3 回复  |  直到 10 年前
        1
  •  3
  •   Peter Phillips    15 年前

    您可以将cgfontgetGlyphWithGlyphName()用于iOS旧版本(2.0)。苹果似乎没有记录字形名称,但我相信它们对应于这个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);
    
        2
  •  3
  •   Tony    16 年前

    退房 CTFontGetGlyphsForCharacters 在核心文本框架中。如果给定Unicode字符的字形索引返回零,则该字体不支持该字符。如果找不到任何标志符号,则函数返回false。

        3
  •  1
  •   uchuugaka    10 年前

    因为它是在iOS上,你可能需要建立或找到一个这样做的应用程序。 最后,如果有任何单独的glyph的信息,它就在字体文件本身的表中,这是相当低级的c工作。

    更容易构建一个检查字体并显示字形和字形索引(cglyph或nsglyph值)的工具,然后使用字形索引。