将uint8_t数组转换为NSString

时间:2011-07-05 07:52:46

标签: iphone objective-c nsstring

如何影响uint8_t的{​​{1}}数组(请参阅下面的decryptedBuffer)?

NSString

2 个答案:

答案 0 :(得分:16)

uint8_t *只是一个与char *兼容的字节字符串,因此您应该能够将已转换的指针传递给stringWithUTF8String,假设解密的字符串是UTF-8并且它以NULL结尾:

NSString *s = [NSString stringWithUTF8String:(char *)decryptedBuffer];

如果数据未以NULL结尾,则可以使用:

NSString *s = [[[NSString alloc] initWithBytes:decryptedBuffer
                                 length:length_of_buffer
                                 encoding:NSUTF8StringEncoding] autorelease];

答案 1 :(得分:-1)

decryptedBuffer是一个int(uint8_t),NSString stringWithUTF8String仅适用于字符串,而不适用于int。我想我找到了你需要的东西:http://lists.apple.com/archives/cocoa-dev/2004/Apr/msg01437.html

那个人使用了这种语法:

    NSString *theDigitsIWant = [[NSNumber numberWithInt:x] stringValue];

所以你应该这样做:

    NSString *cle2 = [[NSNumber numberWithInt:decryptedBuffer] stringValue];