Несовместимые символы юмод-символа эмодзи / символы

Я пытался использовать символы Юникода для астрологии в продуктах для Apple и iOS. Я получаю противоречивые результаты, как показано здесь:

Изображение некоторых астрологических символов в таблице

Большинство из них появляются так, как мне нравится, но по какой-то причине символ Тельца появляется в одну линию на первой линии, следуя за Луной, и совсем другим способом, с фиолетовой кнопкой, похожей на эмодзи, когда она следует за Марсом. Эти результаты согласуются для разных символов и для оборудования Apple; вот снимок экрана с моим телефоном, показывающий ту же проблему с некоторыми другими признаками - Скорпион выходит хорошо, но Весы и Рак - кнопки.

Больше символов в клипе с iPhone

Струны чрезвычайно просты; "Луна Телец" на первом изображении \u263D для Луны, \u2649 для Тельца, в основном собранный как [NSString stringWithFormat:@"%@%@", @"\u263D", @"\u2649"], Изображение "Марс Телец" то же самое, только с \u2642 для Марса. Форматирование строк идентично в разных ячейках таблицы OSX и в iOS AttributedString.

Любая идея, что заставляет эти символы появляться один путь иногда, а другой путь в другой раз?

1 ответ

Решение

Unicode использует вариационные последовательности для выбора между различными визуализациями для определенных кодовых точек, перечисленных в файле StandardizedVariants.txt. В вашем случае, астрологические символы имеют варианты "стиля текста" и "стиля эмодзи", которые выбираются между U+FEOE (стиль текста) или U+FE0F (стиль эмодзи), следующий за кодом:

U+2650U+FE0E: ♐︎

U+2650U+FE0F: ♐️

Обратите внимание, что правильная интерпретация селектора вариаций зависит от поддержки как приложения / каркаса, так и используемых шрифтов. В Chrome (42), кажется, нет никакой разницы между моими примерами выше, но в Safari (8) они различны.

Другие вопросы по тегам