How to display emojis and special characters in UIlabel and UItextviews?

I am trying to display a string in all types of elements like UIlabel, UItextview, Uitextfield etc. I'm trying to do it like this

NSData *data1 = [title dataUsingEncoding:NSUTF8StringEncoding];
NSString *goodValue = [[NSString alloc] initWithData:data1 encoding:NSNonLossyASCIIStringEncoding];
label.text=goodvalue;

this works sometimes for me, but sometimes it returns null for a string such as "Youtube\ud83d\ude27\ud83d\ude2e\ud83d\ude2f\ud83d". Can anyone participate in this for me?

+4
source share
2 answers

Emoji 1 , , 16 . , UTF8 UTF32. Unicode 21- , 0 ( , emoji) 16 , 16 . Emoji 16 .

"Youtube\ud83d\ude27\ud83d\ude2e\ud83d\ude2f\ud83d". , unfode unicode utf16, \ud83d 1/2 emoji.

, escape- "\", escape- : "\\".

NSString *emojiEscaped = @"Youtube\\ud83d\\ude27\\ud83d\\ude2e\\ud83d\\ude2f";
NSData *emojiData = [emojiEscaped dataUsingEncoding:NSUTF8StringEncoding];
NSString *emojiString = [[NSString alloc] initWithData:emojiData encoding:NSNonLossyASCIIStringEncoding];
NSLog(@"emojiString: %@", emojiString);

NSLog:

emojiString: Youtube😧😮😯

emoji utf32:

NSString *string = @"\U0001f627\U0001f62e\U0001f62f";
NSLog(@"string: %@", string);

NSLog:

string1: 😧😮😯

+8
NSString *str = @"Happy to help you \U0001F431";

NSData *data = [str dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *valueUnicode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];


NSData *dataa = [valueUnicode dataUsingEncoding:NSUTF8StringEncoding];
NSString *valueEmoj = [[NSString alloc] initWithData:dataa encoding:NSNonLossyASCIIStringEncoding];

_lbl.text = valueEmoj;
+3

Source: https://habr.com/ru/post/1542311/


All Articles