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



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。

请参阅此处更多

最新更新