从NSString
获取Unicode值的最简单方法是什么?例如,
NSString *str = "A";
NSString *hex;
现在,我想将hex
的值设置为str
的Unicode值(即0041)。。。我该怎么做呢?
unichar
类型被定义为一个16位的unicode值(例如,在%C说明符的描述中间接记录的),您可以使用characterAtIndex:
从NSString
中的给定位置获取unichar
,或者如果您想从NSString
中比逐个查询更快速地填充unichars的C数组,则使用getCharacters:range:
。
NSUTF32StringEncoding
也是一种有效的字符串编码,还有一些特定于endian的变体,以防您想要绝对经得起未来的考验。你会得到一个使用更冗长的getBytes:maxLength:usedLength:encoding:options:range:remainingRange:
的C数组。
编辑:是的,例如
NSString *str = @"A";
NSLog(@"16-bit unicode values are:");
for(int index = 0; index < [str length]; index++)
NSLog(@"%04x", [str characterAtIndex:index]);
您可以使用
NSData * u = [str dataUsingEncoding:NSUnicodeStringEncoding];
NSString *hex = [u description];
您可以用NSUTF8StringEncoding、NSUTF16StringEncoding(与NSUnicodeStringEncodition相同)或NSUTF32StringEncodition或许多其他值替换NSUnicodeString。
请参阅此处更多