我想知道如何将表情符号转换为十六进制值。这是为了笑脸有“露出脸部和微笑眼睛的笑脸”(笑脸对应于:))我应该得到“ 1F604"
答案 0 :(得分:4)
这是你在找什么?
NSString *smiley = @"";
NSData *data = [smiley dataUsingEncoding:NSUTF32LittleEndianStringEncoding];
uint32_t unicode;
[data getBytes:&unicode length:sizeof(unicode)];
NSLog(@"%x", unicode);
// Output: 1f604
反方向:
uint32_t unicode = 0x1f604;
NSString *smiley = [[NSString alloc] initWithBytes:&unicode length:sizeof(unicode) encoding:NSUTF32LittleEndianStringEncoding];
NSLog(@"%@", smiley);
// Output:
备注:两个代码示例都假设整数存储在 little-endian字节顺序中(对于运行OS X或iOS的所有当前平台都是如此)。 / p>
答案 1 :(得分:1)
Swift版本
let smiley = ""
let uni = smiley.unicodeScalars // Unicode scalar values of the string
let unicode = uni[uni.startIndex].value // First element as an UInt32
println(String(unicode, radix: 16, uppercase: true))
// Output: 1F60A