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
。
这是使用模拟器,我想知道错误只出现在设备上吗?在模拟器中它正在工作?
我遇到了有关在 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
。
这是使用模拟器,我想知道错误只出现在设备上吗?在模拟器中它正在工作?