我这里有一些奇怪的问题。代码如下
NSMutableString *unicodeString = [NSMutableString string];
for (NSUInteger i = 0; i < [data length]; i++) {
unsigned char byte;
[data getBytes:&byte range:NSMakeRange(i, 1)];
unichar unicodeChar = byte;
NSString *appendString = [NSString stringWithFormat:@"%C",[_toUnicode unicharFromCIDString:unicodeChar]];
[unicodeString appendFormat:@"%@",appendString];
NSLog(@"%@",appendString); //1
}
NSLog(@"%@",unicodeString)//2
打印appendString,但unicodeString从不打印。这是因为字节问题吗??我已经尝试保留appendString,但它仍然不会打印
*UPDATED找到答案
换句话说:
NSString *appendString = [NSString stringWithCharacters:&unicodeChar length:1];
[unicodeString appendFormat:@"%@", appendString];
我发现问题是%C是16位单字符,所以如果我想追加到NSString,我必须使用%C,这是8位。
NSString *appendString = [NSString stringWithFormat:@"%c",[_toUnicode unicharFromCIDString:unicodeChar]];
[unicodeString appendFormat:@"%@",appendString];