如何将 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]);