从NSString
获取Unicode值的最简单方法是什么?例如,
NSString *str = "A";
NSString *hex;
现在,我想将hex
的值设置为str
的Unicode值(即0041)...我将如何进行此操作?
答案 0 :(得分:6)
unichar
类型定义为16位unicode值(例如,description of the %C specifier中间接记录),您可以从给定位置获取unichar
使用characterAtIndex:
的NSString
,或者如果您希望从NSString
更快地填充C阵列的单个字符,请使用getCharacters:range:
,而不是逐个查询它们。
NSUTF32StringEncoding
也是一个有效的字符串编码,以及一些特定于字节序的变体,以防您希望绝对未来证明。你会得到一个使用更长途的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]);
答案 1 :(得分:3)
您可以使用
NSData * u = [str dataUsingEncoding:NSUnicodeStringEncoding];
NSString *hex = [u description];
您可以通过NSUTF8StringEncoding,NSUTF16StringEncoding(与NSUnicodeStringEncoding相同)或NSUTF32StringEncoding或许多其他值替换NSUnicodeStringEncoding。
参见here 更多