我一直在尝试在Apple和iOS的产品中使用Unicode符号进行占星术。我得到了不一致的结果,如下所示:
大多数这些都是我喜欢的,但出于某种原因,金牛座的符号出现在第一行的一个方向,跟随月亮,以及一种非常不同的方式,使用类似表情符号的紫色按钮,当它跟随火星。这些结果对于不同的符号和Apple硬件是一致的;这是我的手机屏幕截图显示同样的问题与其他一些迹象 - 天蝎座出来没事,但天秤座和巨蟹座是按钮。
字符串非常简单; " Moon Taurus"在第一张图片中,月亮为\u263D
,金牛座为\u2649
,基本上为[NSString stringWithFormat:@"%@%@", @"\u263D", @"\u2649"]
。 "火星金牛座"图像是相同的,只有火星的\u2642
。字符串格式在OSX表的不同单元格和iOS AttributedString中是相同的。
任何想法是什么让这些符号有时会出现一种方式,而另一种方式出现在其他时候?
答案 0 :(得分:14)
Unicode使用变体序列在StandardizedVariants.txt文件中列出的某些代码点的不同渲染之间进行选择。在您的情况下,占星符号同时具有“文本样式”和“表情符号样式”变体,这些变体在代码点之后由U+FEOE
(文本样式)或U+FE0F
(表情符号样式)选择:< / p>
U+2650
U+FE0E
:♐︎
U+2650
U+FE0F
:♐️
请注意,变体选择器的正确解释取决于应用程序/框架和正在使用的字体的支持。在Chrome(42)上,我的上述示例之间似乎没有任何区别,但在Safari(8)上它们是截然不同的。