Как получить индексы шрифта из текста? - PullRequest
0 голосов
/ 25 июня 2019

Я хочу проверить, имеют ли "\ u261d" и "\ u261d \ ufe0f" одинаковый внешний вид или нет на Android. Например, в iOS следующий код показывает индексы шрифта как CGGlyph.

// iOS version
// text: "\u261d\ufe0f" or "\u261d"
    var characters: [UniChar] = [UniChar](text.utf16)// code points
    var glyphs: [CGGlyph] = [CGGlyph](repeating: 0, count: characters.count)
    let hasGlyph: Bool = CTFontGetGlyphsForCharacters(
      font,// CTFont
      &characters,
      &glyphs,
      characters.count
    )
// CGGlyph Indexes
// [139, 42,] "\u261d\ufe0f"
// [139,] "\u261d"

Разница в дизайне смайликов состоит в разнице шрифтов на устройствах. Обычно разные кодовые точки смайликов имеют разный дизайн, но иногда разные кодовые точки смайликов имеют одинаковый дизайн. Таким образом, чтобы исключить дублирование, нужны индексы.

...