当使用以下代码设置表情符号字符时:
self.textField.text = @"\ue415";
它只是显示为正方形。但是当我从键盘输入表情符号时,它会正确显示。有什么问题?
PS:我使用的是IOS 5.1
在旧版本的 iOS 中,表情符号字符全部位于 Unicode 专用区域中,顾名思义,这是一组明确没有任何关联字符的 Unicode 代码点。然而,Unicode 标准已经更新,包含了大量的表情符号字符,因此 iOS 现在使用这些字符,Mac OS X 也是如此。
您可以在 www.unicode.org/charts 的代码图表中查看所有 Unicode 表情符号的列表,例如http://www.unicode.org/charts/PDF/U1F600.pdf这些还告诉您每个表情符号实际上代表什么。
所有 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
其中单个????张开嘴微笑的脸和微笑的眼睛表情符号有两个unichars长,而不是我们想象的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)