Base64字符串解码时为nil的问题

对Base64字符串解码:

NSString *testStr = @"eyJleHBpcmVkIjoxNTAwNzc1OTA1NzI2LCJ1c2VySWQiOjI3fQ";
 NSInteger dValue = testStr.length%3;

//这一步的处理,只是一种尝试,尚不确定是否万能    
    for (int i = 0; i < dValue; i++) {
        testStr = [testStr stringByAppendingString:@"="];
    }

 NSData *testData = [[NSData alloc] initWithBase64EncodedString:testStr options:0];
    
   NSString *testStrDecoded = [[NSString alloc] initWithData:testData encoding:NSUTF8StringEncoding]

对字符串进行base64编码:

//测试代码
NSDictionary *dic = @{@"expired":@1500775905726,@"userId":@27};
NSData *dicData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
NSString *dicBase64Str = [dicData base64EncodedStringWithOptions:0];

 NSString *jsonStr = [[NSString alloc] initWithData:dicData encoding:NSUTF8StringEncoding];
 NSData *jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
 NSString *jsonBase64Str = [jsonData base64EncodedStringWithOptions:0];

参考:
Base64编码解码原理详解 http://blog.csdn.net/u013412497/article/details/51552335

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容