【发布时间】:2014-01-29 10:03:27
【问题描述】:
我想知道如何将表情符号转换为十六进制值。那是针对具有“张开嘴和微笑眼睛的笑脸”的笑脸(笑脸对应于:))我应该得到“ 1F604"
【问题讨论】:
我想知道如何将表情符号转换为十六进制值。那是针对具有“张开嘴和微笑眼睛的笑脸”的笑脸(笑脸对应于:))我应该得到“ 1F604"
【问题讨论】:
这是你要找的吗?
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: ?
备注: 两个代码示例都假设整数以小端字节序存储(当前所有运行 OS X 或 iOS 的平台都是这种情况)。
【讨论】:
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
【讨论】: