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

Apo*_*ace 9 unicode macos ios emoji

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

一些占星术标志的图象在桌里

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

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

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

知道是什么让这些符号有时会出现一种方式,而其他时候则是另一种方式?

一二三*_*一二三 15

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

U+2650 U+FE0E:♐︎

U+2650 U+FE0F:♐️

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

  • 谢谢,那个岩石.并且工作.可惜Chrome不尊重它,但最重要的是我的iOS和OSX应用程序. (2认同)