4

我在这里遇到了一些奇怪的问题。代码如下

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 但它仍然不会打印

*已更新找到答案

4

2 回答 2

3

其他方式 :

NSString *appendString = [NSString stringWithCharacters:&unicodeChar length:1];
[unicodeString appendFormat:@"%@", appendString];
于 2014-01-10T11:42:17.783 回答
2

我发现问题是 %C 是 16bit unichar 所以如果我想附加到 NSString 我必须使用 8bit 的 %c 。这完美地工作。

NSString *appendString = [NSString stringWithFormat:@"%c",[_toUnicode     unicharFromCIDString:unicodeChar]];
[unicodeString appendFormat:@"%@",appendString];
于 2011-10-27T09:21:23.923 回答