为什么 strlen() return 这里的字节数不正确?

Why doesn't strlen() return the correct number of bytes here?

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

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

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

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