繁体   English   中英

Objective-C Base64解码返回nil

[英]Objective-C Base64 decoding returns nil

我已下载以下类别并将其添加到我的项目中: https : //github.com/nicklockwood/Base64

NSString *secret = @"7pgj8Dm6";
NSString *decodedSecret = [secret base64DecodedString];
NSLog(@"decoded Secret = %@", decodedSecret);

然而,事实总是如此。 这是怎么回事?

希望对您有帮助

NSString *decodeString = @"Raja";

编码字符串

NSData *encodeData = [decodeString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64String = [encodeData base64EncodedStringWithOptions:0];
DLog(@"Encode String Value: %@", base64String);

解码字符串

NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
DLog(@"Decode String Value: %@", base64String);  

谢谢

我未能通过NSDataBase64DecodingIgnoreUnknownCharacters充分放松iOS本机base64解码器来处理jwt负载,因此我不得不恢复为3rdparty MF_Base64Codec

可悲的是,您可能要考虑采用第3方路线,直到Apple修复了该错误或使解码器进一步放松以接受其当前认为的废话输入为止

您输入的7pgj8Dm6是无效的base64编码的字符串。 因此结果将始终为nil,因为方法base64DecodedString仅用于UTF8 encoding

从iOS 7和Mac OS 10.9开始,不再需要该库

您可以使用initWithBase64EncodedString:options:

此方法的默认实现将拒绝非字母字符,包括换行符。 要支持不同的编码并忽略非字母字符,请指定选项NSDataBase64DecodingIgnoreUnknownCharacters

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM