Objective c 获取NSString的Unicode点并将其放入另一个NSString中

Objective c 获取NSString的Unicode点并将其放入另一个NSString中,objective-c,cocoa,unicode,nsstring,Objective C,Cocoa,Unicode,Nsstring,从NSString获取Unicode值的最简单方法是什么?比如说, NSString *str = "A"; NSString *hex; 现在,我想将hex的值设置为str的Unicode值(即0041)。。。我该怎么做呢?unichar类型被定义为16位unicode值(如中间接记录的),您可以使用,或者,如果您希望从NSString填充unichars的C数组比逐个查询更快,请使用 NSUTF32StringEncoding也是一种有效的字符串编码,以及两个特定于endian的变体,以防

NSString
获取Unicode值的最简单方法是什么?比如说,

NSString *str = "A";
NSString *hex;

现在,我想将
hex
的值设置为
str
的Unicode值(即0041)。。。我该怎么做呢?

unichar类型被定义为16位unicode值(如中间接记录的),您可以使用,或者,如果您希望从
NSString
填充unichars的C数组比逐个查询更快,请使用

NSUTF32StringEncoding
也是一种有效的字符串编码,以及两个特定于endian的变体,以防您想成为绝对可靠的未来证明。您将得到一个C数组,其中使用了更为冗长的

编辑:所以,例如

NSString *str = @"A";

NSLog(@"16-bit unicode values are:");
for(int index = 0; index < [str length]; index++)
    NSLog(@"%04x", [str characterAtIndex:index]);
NSString*str=@“A”;
NSLog(@“16位unicode值为:”);
对于(int-index=0;index<[str-length];index++)
NSLog(@“%04x”,[str字符索引:索引]);
您可以使用

NSData * u = [str dataUsingEncoding:NSUnicodeStringEncoding];
NSString *hex = [u description];
您可以用NSUTF8StringEncoding、NSUTF16StringEncoding(与NSUTFDesingEncoding相同)或NSUTF32StringEncoding或许多其他值替换NSUTFDesingEncoding


要了解更多信息,感谢您的及时回复,但是,我是Obj-C的新手。您能提供一个代码片段/示例用法吗?因为我在执行
code
NSString*hexValue=[NSString stringWithFormat:@“%C”,@“这是因为
@”好的,谢谢Tommy!检查你的正确。编辑:我也会投票,但我显然需要15次代表…所以希望用户看到巨大的复选标记!仅供以后参考:语义上,
unichar
是UTF-16字符,不是Unicode码点。它们大致匹配,但不完全相等。很酷的替代方案;还值得注意的是,de>NSData
包含一个存储相关数据的内存原子块,因此您可以获取其
字节
属性,并适当地将其转换为C数组(如果您愿意)。只需注意
长度
。因此,这是获得32位UTF代码数组的一种比分配更干净的方法您自己的缓冲区,并根据我的回答使用
getBytes:maxLength:…