内容简介:示例如下:此时转换成的字符串中,每个键值对之间会预留一个回车换行符,导致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
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大数据时代的IT架构设计
IT架构设计研究组 / 电子工业出版社 / 2014-4 / 49.00元
《大数据时代的IT架构设计》以大数据时代为背景,邀请著名企业中的一线架构师,结合工作中的实际案例展开与架构相关的讨论。《大数据时代的IT架构设计》作者来自互联网、教育、传统行业等领域,分享的案例极其实用,代表了该领域较先进的架构。无论你就职于哪一行业都可以从本书中找到相关的架构经验,对您在今后的架构设计工作中都能起到很好的帮助作用。 《大数据时代的IT架构设计》适合具备一定架构基础和架构经验......一起来看看 《大数据时代的IT架构设计》 这本书的介绍吧!