Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么可以';是否在UITextField中正确显示表情符号?_Iphone_Ios_Ios5_Emoji - Fatal编程技术网

Iphone 为什么可以';是否在UITextField中正确显示表情符号?

Iphone 为什么可以';是否在UITextField中正确显示表情符号?,iphone,ios,ios5,emoji,Iphone,Ios,Ios5,Emoji,使用以下代码设置表情符号时: self.textField.text = @"\ue415"; 它只是显示为一个正方形。但当我从键盘输入表情符号时,它会正确显示。有什么问题吗 附言:我使用的是IOS 5.1 在旧版本的iOS中,表情符号都位于Unicode专用区域,顾名思义,这是一组Unicode代码点,明确没有任何关联字符。然而,Unicode标准已经更新,包含了大量的表情符号,所以iOS现在使用这些符号,Mac OS X也是如此 您可以在www.Unicode.org/charts.g.上

使用以下代码设置表情符号时:

self.textField.text = @"\ue415";
它只是显示为一个正方形。但当我从键盘输入表情符号时,它会正确显示。有什么问题吗

附言:我使用的是IOS 5.1


在旧版本的iOS中,表情符号都位于Unicode专用区域,顾名思义,这是一组Unicode代码点,明确没有任何关联字符。然而,Unicode标准已经更新,包含了大量的表情符号,所以iOS现在使用这些符号,Mac OS X也是如此

您可以在www.Unicode.org/charts.g.上的代码图中看到所有Unicode表情符号的列表,这些符号还可以告诉您每个表情符号的实际含义

Unicode表情符号都不在Unicode规范的基本多语言平面内,这意味着它们都太大,无法容纳在单个iOS unichar中。因此,当它们存储在NSString中时,每个表情符号都会覆盖多个unichars——如果您尝试迭代字符串中的字符,则需要注意这一点

如果你有这样的代码

NSString *emoji =@"\U0001F604";
NSString *ascii = @"A";
NSLog(@"emoji.length %d, ascii.length %d", emoji.length, ascii.length);
您将在输出中看到这一点

2013-03-08 14:42:22.841 test[23980:c07] emoji.length 2, ascii.length 1

我的答案是:我找到了解决方案。在ios5.1中,必须使用Unicode 6.0,以下是Unicode 6.0字符和软银PUA字符之间的映射:解决方案:self.textField.text=@“\U0001F604”;谢谢亚克西!那个链接正是我想要的。