如何在iPhone中显示五位数的unicode

时间:2014-12-31 08:55:48

标签: ios iphone unicode nsstring

我想在我的应用程序中显示\ u1F318。但iPhone应用程序只使用前4位数字并创建图像。任何人都可以指导我在iPhone中显示unicode \ u1F318的图像我做错了。

 [(OneLabelTableViewCell *)cell textView].text = @"\u1F318";
申请中的

enter image description here

1 个答案:

答案 0 :(得分:4)

注意:这个答案是基于我对Java和C#的经验。如果事实证明没有用,我会删除它。我认为OP的时间值得尝试这里提供的选项...

\u转义序列始终需要四个十六进制数字 - 因此,它只能表示Basic Multilingual Plane中的字符。

如果这是Objective-C,我相信支持\U后跟八个十六进制数字,例如\U0001F318。如果是这样,这是最简单的方法:

[(OneLabelTableViewCell *)cell textView].text = @"\U0001F318";

如果这不起作用,您可能需要将该字符指定为UTF-16代码点的代理对。在这种情况下,U + 1F318由U + D83C U + DF18表示,所以你要写:

[(OneLabelTableViewCell *)cell textView].text = @"\uD83c\uDF18";

当然,这是假设它是基于UTF-16的......

即使这是表示您想要的角色的正确方法,您使用的字体也不支持它是完全可行的。在这种情况下,我希望您看到单个字符(问号,方框或类似的代表错误的内容)。

(旁注:我不知道在Objective-C中使用了@。在C#中,首先会阻止\u成为转义序列,但考虑到你的问题和输出中的代码,大概是Objective-C略有不同。)