Emoji表情使用16进制代码标记,如何在Xcode能显示出来?我们可以将16进制的字符串先转换成uniicode编码,然后再去显示。注意显示到界面上我们可以通过设置text,label可以button可以当然还有其他控件。
OC版本
NSString * charCode = @"0x1f612";
unsigned unicode = 0;
[[NSScanner scannerWithString:charCode]scanHexInt:&unicode];
char chars[4];
int len = 4;
chars[0] = (unicode >> 24) & (1<<24) -1;
chars[1] = (unicode >> 16) & (1<<16)-1;
chars[2] = (unicode >> 8) & (1<<8) -1;
chars[3] = unicode & (1<<8) -1;
NSString * unicodeString = [[NSString alloc]initWithBytes:chars length:len encoding:NSUTF32StringEncoding];
UIButton * button = [[UIButton alloc]init];
[button setTitle:unicodeString forState:UIControlStateNormal];
//imageview.backgroundColor = [UIColor redColor];
button.frame = CGRectMake(30, 30, 100, 100);
[self.view addSubview:button];
NSLog(@"%@",unicodeString);
Swift版本
//16进制的字符串
let str = "0x1f612"
//创建文本扫描器,去扫描我们指定格式的字符串
let scanner = Scanner(string: str)
//UnsafeMutablePointer<UInt32> 代表传入一个地址进去,一个UInt32可变类型的地址
var value:UInt32 = 0
scanner.scanHexInt32(&value)
print(value)
//转换成Unicode的字符
let character = Character(UnicodeScalar(value)!)
print(character)