不一致的Unicode表情符号字形/符号

时间:2015-04-15 20:11:36

标签: ios macos unicode emoji

我一直在尝试在Apple和iOS的产品中使用Unicode符号进行占星术。我得到了不一致的结果,如下所示:

Image of some astrological symbols in a table

大多数这些都是我喜欢的,但出于某种原因,金牛座的符号出现在第一行的一个方向,跟随月亮,以及一种非常不同的方式,使用类似表情符号的紫色按钮,当它跟随火星。这些结果对于不同的符号和Apple硬件是一致的;这是我的手机屏幕截图显示同样的问题与其他一些迹象 - 天蝎座出来没事,但天秤座和巨蟹座是按钮。

More symbols in a clip from an iPhone

字符串非常简单; " Moon Taurus"在第一张图片中,月亮为\u263D,金牛座为\u2649,基本上为[NSString stringWithFormat:@"%@%@", @"\u263D", @"\u2649"]。 "火星金牛座"图像是相同的,只有火星的\u2642。字符串格式在OSX表的不同单元格和iOS AttributedString中是相同的。

任何想法是什么让这些符号有时会出现一种方式,而另一种方式出现在其他时候?

1 个答案:

答案 0 :(得分:14)

Unicode使用变体序列StandardizedVariants.txt文件中列出的某些代码点的不同渲染之间进行选择。在您的情况下,占星符号同时具有“文本样式”和“表情符号样式”变体,这些变体在代码点之后由U+FEOE(文本样式)或U+FE0F(表情符号样式)选择:< / p>

  

U+2650 U+FE0E:♐︎

     

U+2650 U+FE0F:♐️

请注意,变体选择器的正确解释取决于应用程序/框架和正在使用的字体的支持。在Chrome(42)上,我的上述示例之间似乎没有任何区别,但在Safari(8)上它们是截然不同的。