iOS-NSString-Base64String-Base64原理


之前看到好多人找Str2Base64Str,還有好多自己寫了方法的,仔細研究了下base64的編碼原理(這個我寫在下面),發現官方的API已經可以完成這項功能,這里貼出來供大家參考。

一言不合就上代碼:

 1     NSString  * sourceString = @"test";
 2     
 3     NSString *base64String = [[sourceString dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
 4     
 5 //    大概是這個樣子的
 6 //    NSData * strData = [sourceString dataUsingEncoding:NSUTF8StringEncoding];
 7 //    NSString * base64StringT = [strData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
 8     
 9     
10     NSLog(@"%@",base64String);
11     
12     
13     NSString *  restoreString = [[NSString alloc]initWithData:[[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters] encoding:NSUTF8StringEncoding];
14 //    大概是這個樣子的
15 //    NSData * baseStrData = [[NSData alloc] initWithBase64EncodedString:base64String options:NSDataBase64DecodingIgnoreUnknownCharacters];
16 //    NSString * restoreStringT = [[NSString alloc]initWithData:baseStrData encoding:NSUTF8StringEncoding];
17     
18     NSLog(@"%@",restoreString);

上面代碼中有兩個參數“Options”,一個是EnCode,一個是DeCode,其中DeCode就一個可選,EnCode有4個,選擇哪一個都行,目前我發現,各個參數僅是打印出來后的樣式不一樣,內容一樣,應該是為了方便打印debug而設置的(個人猜測,很可能不對)。

Base64原理這里粗略的講一下,表格不太好弄,我就直接圖片了,加一個文檔下載地址:點我下載文檔

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM