Несовместимые символы юмод-символа эмодзи / символы
Я пытался использовать символы Юникода для астрологии в продуктах для Apple и iOS. Я получаю противоречивые результаты, как показано здесь:
Большинство из них появляются так, как мне нравится, но по какой-то причине символ Тельца появляется в одну линию на первой линии, следуя за Луной, и совсем другим способом, с фиолетовой кнопкой, похожей на эмодзи, когда она следует за Марсом. Эти результаты согласуются для разных символов и для оборудования Apple; вот снимок экрана с моим телефоном, показывающий ту же проблему с некоторыми другими признаками - Скорпион выходит хорошо, но Весы и Рак - кнопки.
Струны чрезвычайно просты; "Луна Телец" на первом изображении \u263D
для Луны, \u2649
для Тельца, в основном собранный как [NSString stringWithFormat:@"%@%@", @"\u263D", @"\u2649"]
, Изображение "Марс Телец" то же самое, только с \u2642
для Марса. Форматирование строк идентично в разных ячейках таблицы OSX и в iOS AttributedString.
Любая идея, что заставляет эти символы появляться один путь иногда, а другой путь в другой раз?
1 ответ
Unicode использует вариационные последовательности для выбора между различными визуализациями для определенных кодовых точек, перечисленных в файле StandardizedVariants.txt. В вашем случае, астрологические символы имеют варианты "стиля текста" и "стиля эмодзи", которые выбираются между U+FEOE
(стиль текста) или U+FE0F
(стиль эмодзи), следующий за кодом:
U+2650
U+FE0E
: ♐︎
U+2650
U+FE0F
: ♐️
Обратите внимание, что правильная интерпретация селектора вариаций зависит от поддержки как приложения / каркаса, так и используемых шрифтов. В Chrome (42), кажется, нет никакой разницы между моими примерами выше, но в Safari (8) они различны.