内容简介:示例如下:此时转换成的字符串中,每个键值对之间会预留一个回车换行符,导致http传输时会出错,因此如果要用于http网络传输时,需要手动将回车符替换掉!!!iOS Base64转码(使用ios7系统自带编码库 和GMTBase64两种方式)
1 Base64
1.1 在iOS7中系统提供了base64的转码方式
示例如下:
NSData* originData = [originStr dataUsingEncoding: NSASCIIStringEncoding]; NSString* encodeResult = [originData base64EncodedStringWithOptions: NSDataBase64EncodingEndLineWithLineFeed]; NSLog(@"encodeResult:%@",encodeResult); NSData* decodeData = [[NSData alloc] initWithBase64EncodedString: encodeResult options:0]; NSString* decodeStr = [[NSString alloc] initWithData: decodeData encoding: NSASCIIStringEncoding];
1.2 iOS使用开源库GTMBase64转码
/** *GTM 转码 */ - (void)GTMEncodeTest { NSString* originStr = @"Man"; NSString* encodeResult = nil; NSData* originData = [originStr dataUsingEncoding: NSUTF8StringEncoding]; NSData* encodeData = [GTMBase64 encodeData: originData]; encodeResult = [[NSString alloc] initWithData: encodeData encoding: NSUTF8StringEncoding]; NSLog(@"%@",encodeResult); } /** * GTM 解码 */ - (void)GMTDecodeTest { NSString* encodeStr = @"TWFu"; NSString* decodeResult = nil; NSData* encodeData = [encodeStr dataUsingEncoding: NSUTF8StringEncoding]; NSData* decodeData = [GTMBase64 decodeData: encodeData]; decodeResult = [[NSString alloc] initWithData: decodeData encoding: NSUTF8StringEncoding]; NSLog(@"%@",decodeResult); }
2 JSON
2.1 JSON与NSDictionary互相转换
2.1.1 NSDictionary转换为NSString
- (NSString*) DataTOjsonString: (id)object { NSString*jsonString = nil; NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject: object options: NSJSONWritingPrettyPrinted error: &error]; // Pass 0 if you don't care about the readability of the generated string if (! jsonData) { NSLog(@"Got an error: %@", error); }else{ jsonString= [[NSString alloc] initWithData: jsonData encoding: NSUTF8StringEncoding]; } return jsonString; }
注意:
此时转换成的字符串中,每个键值对之间会预留一个回车换行符,导致http传输时会出错,因此如果要用于http网络传输时,需要手动将回车符替换掉!!!
jsonString = [jsonString stringByReplacingOccurrencesOfString: @"\n" withString:@""];
2.1.2 将JSON串转化为NSDictionary或NSArray
// 将JSON串转化为字典或者数组 - (id)toArrayOrNSDictionary: (NSData*)jsonData{ NSError *error = nil; id jsonObject = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingAllowFragments error: &error]; if (jsonObject != nil && error == nil){ return jsonObject; }else{ // 解析错误 return nil; } }
3 参考链接
iOS Base64转码(使用ios7系统自带编码库 和GMTBase64两种方式)
http://www.2cto.com/kf/201405/297303.html
[译]iOS7:使用Base64编解码NSData和NSString对象
http://itony.me/488.html
iOS:Terminating app due to uncaught exception'NSInvalidArgumentException', reason: 'Invalid type in JSON write(_NSInlineData)'
http://stackoverflow.com/questions/24984098/iosterminating-app-due-to-uncaught-exception-nsinvalidargumentexception-reas
NSDictionary to jsonString ||对象转json格式
http://www.cnblogs.com/qingjoin/p/3437036.html
将NSString转换成UTF8编码的NSString
http://blog.csdn.net/a6472953/article/details/8163016
NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化
http://blog.csdn.net/xyxjn/article/details/17224733
---------------------
作者:junbaozi
原文:https://blog.csdn.net/junbaozi/article/details/79491868
以上所述就是小编给大家介绍的《【IOS开发基础系列】数据编解码专题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- (推荐阅读)H264, H265硬件编解码基础及码流分析
- go基础库之解码非Unicode字符集中的字符串
- Android 音视频开发打怪升级之音视频硬解码篇(一):音视频基础知识
- Netty-解码器架构与常用解码器
- Glide 缓存与解码复用
- 音频解码 Audio Converter
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Once Upon an Algorithm
Martin Erwig / MIT Press / 2017-9-8 / GBP 22.95
How Hansel and Gretel, Sherlock Holmes, the movie Groundhog Day, Harry Potter, and other familiar stories illustrate the concepts of computing. Picture a computer scientist, staring at a screen and......一起来看看 《Once Upon an Algorithm》 这本书的介绍吧!