我有以下字符串,我想用一个表情符号和新行在UILabel中正确显示它。我也想用drawInRect方法绘制它。如何正确转换/编码/解码?
此字符串将在运行时更改,因此应显示任何unicode字符/表情符号或特殊字符,例如\ n或&
对不起,我不知道用这个问题的正确用语。这让我很难在网上找到答案。我对这个主题的了解非常少。
\ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude05 \ ud83d \ ude06 \ u0db8 \ u0da0 \ u0d82 \ u0d91 \ u0d9a \ u0dca \ u0d9a \ n#set_with_machan \ nkunuharapa na \ n#关注 @lankan_machan \ nhttps://www.instagram.com/lankan_machan
答案 0 :(得分:1)
我能找到一个解决方案并编辑了一下。这个un完全逃脱了unicode角色并正确显示它们。也显示新行。感谢@DanZimm的帮助。
- (NSString*) unescapeUnicodeString2:(NSString*)string
{
NSString* esc1 = [string stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
NSString* esc2 = [esc1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
NSString* quoted = [[@"\"" stringByAppendingString:esc2] stringByAppendingString:@"\""];
NSData* data = [quoted dataUsingEncoding:NSUTF8StringEncoding];
NSString* unesc = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:NULL error:NULL];
assert([unesc isKindOfClass:[NSString class]]);
return unesc;
}
找到解决方案here我必须编辑它,因为其中一个方法已被弃用。