IOS Hex Value Conversion

How to convert hex value to emoji icons, I have a line as below

NSString *myVal = @"1F61E"; 

how can i convert this text to display it as emoji charrcaters?

I found that the value from this link Please let me know, I am really stuck in this problem.

Updated

 NSString *utf8String1 = @"1F61E"; NSString *a = [self convert:utf8String1]; NSLog(@"%@ &&&&&&&&&&&&&&&&&&&&&",a); -(NSString*)convert:(NSString*)decoded{ unichar unicodeValue = (unichar) strtol([decoded UTF8String], NULL, 16); char buffer[2]; int len = 1; if (unicodeValue > 127) { buffer[0] = (unicodeValue >> 8) & (1 << 8) - 1; buffer[1] = unicodeValue & (1 << 8) - 1; len = 2; } else { buffer[0] = unicodeValue; } return [[NSString alloc] initWithBytes:buffer length:len encoding:NSUTF8StringEncoding]; } 
+6
source share
2 answers

The code point you are trying to encode does not match 16 bits. Therefore you need to use UTF-32 encoding:

 NSScanner *scan = [[NSScanner alloc] initWithString:@"1F61E"]; unsigned int val; [scan scanHexInt:&val]; char cc[4]; cc[3] = (val >> 0) & 0xFF; cc[2] = (val >> 8) & 0xFF; cc[1] = (val >> 16) & 0xFF; cc[0] = (val >> 24) & 0xFF; NSString *s = [[NSString alloc] initWithBytes:cc length:4 encoding:NSUTF32StringEncoding]; NSLog(@"[%@]", s); 
+4
source

Your first step is to convert it to a numerical value:

 unichar unicodeValue = (unichar) strtol([input UTF8String], NULL, 16); 

Then, following the rules of this post :

 char buffer[2]; int len = 1; if (unicodeValue > 127) { buffer[0] = (unicodeValue >> 8) & (1 << 8) - 1; buffer[1] = unicodeValue & (1 << 8) - 1; len = 2; } else { buffer[0] = unicodeValue; } return [[NSString alloc] initWithBytes:buffer length:len encoding:NSUTF8StringEncoding]; 

Now you have the UTF-8 format string!

0
source

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


All Articles