我有一堆 unicode 字符包裹在 NSNumber 中,如下所示:
@(0x1f4de), // EntypoIconTypePhone
@(0x1f4f1), // EntypoIconTypeMobile
@(0xe789), // EntypoIconTypeMouse
@(0xe723), // EntypoIconTypeAddress
@(0x2709), // EntypoIconTypeMail
@(0x1f53f), // EntypoIconTypePaperPlane
@(0x270e), // EntypoIconTypePencil
这些是来自 Entypo 字体的图标(强烈推荐)。
这是我用来从 unicode 创建 NSString 的代码:
NSNumber *u = self.unicodeLookup[type];
int unicode = [u intValue];
UniChar chars[] = {unicode};
NSString *string = [[NSString alloc] initWithCharacters:chars length:sizeof(chars) / sizeof(UniChar)];
我发现其中一些图标是按预期创建的,但不是全部。从我所见,其中有 5 位数字的 unicode 没有被正确创建。
例如,这些工作:
@(0xe723), // EntypoIconTypeAddress
@(0x2709), // EntypoIconTypeMail
但这些不:
@(0x1f4de), // EntypoIconTypePhone
@(0x1f4f1), // EntypoIconTypeMobile
我很确定这是我的转换代码。我真的不明白所有这些编码问题。