UILabel 不显示表情符号

UILabel not showing 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 并在设备上得到空标签。

我无法让它正常工作。

感谢您的帮助。

尝试将您的 UILabel 设置为:

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

我试过你的代码,第二个..它工作得很好:

这是我的:

和输出:

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