如何将 unicode 字符放入 NSString
How to put unicode char into NSString
例如,我可以输入一个表情符号字符代码,例如:
NSString* str = @"";
NSLog(@"%@", str);
将在控制台中看到微笑表情符号。
也许代码编辑器和编译器会交换 UTF-8 中的文字。
现在我正在使用完整的 unicode,我的意思是每个字符 32 位,环境,我有表情符号的 unicode,我想将 32 位 unicode 转换成 NSString 例如:
int charcode = 0x0001F60A;
NSLog(@"%??", charcode);
问题是我应该在“??”位置然后我可以将字符代码格式化为表情符号字符串?
顺便说一句,charcode 是一个无法在编译时确定的变量。
我不想将 32 位 int 压缩成 UTF-8 字节,除非那是唯一的方法。
如果 0x0001F60A
是运行时确定的动态值,则
你可以使用NSString
方法
- (instancetype)initWithBytes:(const void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding;
创建一个包含具有给定 Unicode 值的字符的字符串:
int charcode = 0x0001F60A;
uint32_t data = OSSwapHostToLittleInt32(charcode); // Convert to little-endian
NSString *str = [[NSString alloc] initWithBytes:&data length:4 encoding:NSUTF32LittleEndianStringEncoding];
NSLog(@"%@", str); //
使用NSString
初始化方法
int charcode = 0x0001F60A;
NSLog(@"%@", [[NSString alloc] initWithBytes:&charcode length:4 encoding:NSUTF32LittleEndianStringEncoding]);
例如,我可以输入一个表情符号字符代码,例如:
NSString* str = @"";
NSLog(@"%@", str);
将在控制台中看到微笑表情符号。
也许代码编辑器和编译器会交换 UTF-8 中的文字。
现在我正在使用完整的 unicode,我的意思是每个字符 32 位,环境,我有表情符号的 unicode,我想将 32 位 unicode 转换成 NSString 例如:
int charcode = 0x0001F60A;
NSLog(@"%??", charcode);
问题是我应该在“??”位置然后我可以将字符代码格式化为表情符号字符串?
顺便说一句,charcode 是一个无法在编译时确定的变量。
我不想将 32 位 int 压缩成 UTF-8 字节,除非那是唯一的方法。
如果 0x0001F60A
是运行时确定的动态值,则
你可以使用NSString
方法
- (instancetype)initWithBytes:(const void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding;
创建一个包含具有给定 Unicode 值的字符的字符串:
int charcode = 0x0001F60A;
uint32_t data = OSSwapHostToLittleInt32(charcode); // Convert to little-endian
NSString *str = [[NSString alloc] initWithBytes:&data length:4 encoding:NSUTF32LittleEndianStringEncoding];
NSLog(@"%@", str); //
使用NSString
初始化方法
int charcode = 0x0001F60A;
NSLog(@"%@", [[NSString alloc] initWithBytes:&charcode length:4 encoding:NSUTF32LittleEndianStringEncoding]);