我試圖將NSString轉換爲uint8_t。我遇到的問題是NSString和結果uint8_t變量不匹配。下面是一些示例代碼:NSString與uint8_t不匹配
NSLog(@"Key now: %@", key);
NSData* keyData = [key dataUsingEncoding:NSUTF8StringEncoding];
const uint8_t *plainBuffer = (const uint8_t*)[data bytes];
size_t plainBufferSize = strlen((char *) plainBuffer);
NSLog(@"Plain buffer: %s", plainBuffer);
NSData* testData = [[NSData alloc] initWithBytes: plainBuffer length:plainBufferSize];
NSString* testString = [[NSString alloc] initWithData: testData encoding: NSUTF8StringEncoding];
NSLog(@"Test string: %@", testString);
而且輸出示例:
Key now: 9iIWBpf5R6yu5pJ93l218RsMdWBLidXt
Plain buffer: 9iIWBpf5R6yu5pJ93l218RsMdWBLidXtMdWBLidXt
Test string: 9iIWBpf5R6yu5pJ93l218RsMdWBLidXtMdWBLidXt
顯然其NSData的 - > uint8_t一步多數民衆贊成去錯了,但我不知道爲什麼!
糾正我,如果我錯了,但不' - [NSString dataUsingEncoding:]'丟棄終止NUL字節?你爲什麼不簡單地使用' - [NSString UTF8String]'而不是? – 2012-12-10 19:13:05