我有以下字符串,我想用表情符号和新行在 UILabel 中正确显示它。我也想使用drawInRect方法来绘制它。如何正确地转换/编码/解码它们?
此字符串将在运行时更改,因此应显示任何 unicode 字符/表情符号或特殊字符,例如 或&
很抱歉,我不知道提出这个问题的正确术语。这让我很难在网上找到答案。我对这个话题的了解非常低。
\ud83d\ude02\ud83d\ude02\ud83d\ude02\ud83d\ude02\ud83d\ude02\ud83d\ude05\ud83d\ude06 \u0db8\u0da0\u0d82 \u0d91\u0d9a\u0dca\u0d9a #set_with_machan 库努哈拉帕纳 #跟随 @lankan_machan https://www.instagram.com/lankan_machan
我找到了解决方案并对其进行了一些编辑。这个 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;
}
在此处找到解决方案我必须对其进行编辑,因为其中一种方法已被弃用。