簡體   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