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

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

一些占星符号在一张桌子的图像

其中大部分都是我喜欢的,但由于某种原因,金牛座的符号在月亮之后出现在第一行上,并且与火星相似,表情符号与紫色button非常不同。 这些结果对于不同的符号和Apple硬件是一致的; 这里是我的手机屏幕截图显示与其他迹象相同的问题 – 天蝎座出来没事,但天秤座和巨蟹座是button。

来自iPhone的剪辑中的更多符号

string非常简单; “月亮金牛座”中的第一个图像是“月亮”,对于金牛座,基本上组装为[NSString stringWithFormat:@"%@%@", @"\u263D", @"\u2649"] 。 “火星金牛座”的形象是一样的,只有火星\u2642 。 string格式在OSX表的不同单元格和iOS的AttributedString中是相同的。

任何想法是什么使这些符号有时以一种方式出现,而另一种方式呢?

Unicode使用变化序列在不同渲染之间selectStandardVariants.txt文件中列出的某些代码点。 在你的情况下,占星符号同时具有通过U+FEOE (文本样式)或U+FE0F (表情符号样式)在代码点之后select的“文本样式”和“表情符号样式”变体:

U+2650 U+FE0E :♐︎

U+2650 U+FE0F :♐️

请注意,对变体select器的正确解释取决于应用程序/框架和正在使用的字体的支持。 在Chrome(42)上面我的例子看起来没有任何区别,但在Safari(8)上它们是不同的。