UILabel没有显示表情符号

时间:2015-06-25 20:17:14

标签: ios objective-c uilabel emoji

我遇到了在UILabel中显示表情符号的问题。 我从Web服务获取此数据(我无法更改获取数据的方式): 该值来自调试器:

__NSCFString *  @"emoji \\ud83d\\ude1b\\ud83d\\ude1d"   0x000000017405ea80 

NSLog的值:

emoji \ud83d\ude1b\ud83d\ude1d

如果我将此值分配给我的UILabel文本属性,我会在屏幕上显示:

emoji \ud83d\ude1b\ud83d\ude1d

我尝试使用以下代码对字符串进行编码和解码:

NSData *data = [string dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *dataValue = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return dataValue;

当我尝试时:

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
NSString *output = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];

我在屏幕上显示表情符号但是如果字符串里面没有表情符号,那么它将是nil并在设备上获得空标签。

我无法让它正常工作。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我尝试了你的代码,第二个......它运行得很完美:

这就是我所拥有的:

enter image description here

和输出:

enter image description here

删除表情符号字符串\\ud83d\\ude1b\\ud83d\\ude1d,只需离开emoji即可。 这是使用模拟器,我不知道错误只出现在设备上?在模拟器中它工作吗?

答案 1 :(得分:0)

尝试将UILabel设置为:

//Example
[NSString stringWithUTF8String:"\ud83d"]