我遇到了在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并在设备上获得空标签。
我无法让它正常工作。
感谢您的帮助。
答案 0 :(得分:1)
我尝试了你的代码,第二个......它运行得很完美:
这就是我所拥有的:
和输出:
删除表情符号字符串\\ud83d\\ude1b\\ud83d\\ude1d
,只需离开emoji
即可。
这是使用模拟器,我不知道错误只出现在设备上?在模拟器中它工作吗?
答案 1 :(得分:0)
尝试将UILabel
设置为:
//Example
[NSString stringWithUTF8String:"\ud83d"]