我正在以XML格式从服务器检索值,服务器发送以下字符串: “这是一个很好的字符串与表情符号\ ue056 \ ue056 \ ue056 \ ue057 \ ue057 \ ue056 \ ue056”
我一直在努力让我的UILabel显示表情符号图标,而不是以下
\ ue056 \ ue056 \ ue056 \ ue057 \ ue057 \ ue056 \ ue056
我试过了
[chatText setText:[chatString stringByReplacingOccurrencesOfString:@"\\\\u" withString:@"\\u"]];
没多少运气。我绝望地做了以下事情:
[chatText setText:[[chatString cStringUsingEncoding:NSNonLossyASCIIStringEncoding] stringByReplacingOccurrencesOfString:@"\\\\u" withString:@"\\u"]];
注意:分配以下字符串可以解决问题:
[chatText setText:@"\ue056\ue056\ue056\ue057\ue057\ue056\ue056"];
答案 0 :(得分:1)
看起来您需要浏览每个字符,并对每个表情符号字符使用stringWithFormat:@"%C"
:
// Loop through string by characters, and then do something like:
// NSString *emoji = [NSString stringWithFormat:@"%C", 16-bit Unicode character (unichar) here];
NSString *emoji = [NSString stringWithFormat:@"%C", 0xe415];
chatText.text = [chatText.text stringByAppendingString:emoji];
答案 1 :(得分:0)
我已经构建了一个stringHandler类,它包含以下函数来克服这个问题,这几乎解决了我的问题:
+ (NSString *) mapEmojiFromServer:(NSString *) inString
{
inString = [inString stringByReplacingOccurrencesOfString:@"\\" withString:@""];
inString = [inString stringByReplacingOccurrencesOfString:[@"ue001" lowercaseString] withString:@"\ue001"];
.
.
.
return inString;
}
在导航和滚动包含此2000行功能的页面时,我没有注意到除了IDE变得疯狂之外的性能问题
非常感谢你的帮助。