不一致的 Unicode 表情符号 Glyphs/Symbols

Inconsistent Unicode Emoji Glyphs/Symbols

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

其中大部分都按我喜欢的方式出现,但出于某种原因,金牛座符号在第一行以一种方式出现,紧随月亮之后,并且以一种非常不同的方式出现,带有类似表情符号的紫色按钮,当它跟随火星。这些结果对于不同的符号和 Apple 硬件都是一致的;这是我的 phone 的屏幕截图,显示了与其他一些星座相同的问题 - 天蝎座很好,但天秤座和巨蟹座是按钮。

字符串非常简单;第一张图中的"Moon Taurus"是\u263D月亮,\u2649金牛,基本拼成[NSString stringWithFormat:@"%@%@", @"\u263D", @"\u2649"]。 "Mars Taurus" 图像是一样的,只有 \u2642 代表火星。 OSX table 和 iOS AttributedString.

的不同单元格中的字符串格式相同

知道是什么让这些符号有时以一种方式出现,而有时又以另一种方式出现吗?

Unicode 在某些代码点的不同呈现之间使用 变体序列 到 select — 在 StandardizedVariants.txt 文件中列出。在您的情况下,占星术符号同时具有“文本样式”和“表情符号样式”变体,它们之间 select 由 U+FEOE(文本样式)或 U+FE0F(表情符号样式)跟随代码点:

U+2650 U+FE0E: ♐︎

U+2650 U+FE0F: ♐️

请注意,对变体 selector 的正确解释取决于 application/framework 和所用字体的支持。在 Chrome (42) 上,我上面的示例似乎没有任何区别,但在 Safari (8) 上,它们是不同的。