为什么strlen()在这里没有返回正确的字节数?

时间:2016-10-24 12:52:40

标签: objective-c base64 byte

NSString* data = @"UdmAjkmNQs79+J/a/MVVSACRkIo=";
NSData *key = [NSData dataFromBase64String:data];
const char *keyBytes = [key bytes];
NSLog(@"Length:  %lu", strlen(keyBytes));

考虑上面的代码。我有一个base64字符串,其中包含20个字节的数据。我把它变成字节,我想检查字节数。这打印16.为什么打印16,我需要做什么才能获得正确的字节数(20)?

1 个答案:

答案 0 :(得分:0)

使用下面的代码来获取数据字节长度:

NSString* data = @"UdmAjkmNQs79+J/a/MVVSACRkIo=";
NSData *key = [[NSData alloc] initWithBase64EncodedString:data options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSLog(@"Length:  %lu", [key length]);