URL 编、解码(EncodedString、DecodedString) - iOS

开发中对文本传输或二进制传输,都需要将传输的对象进行二进制字节的转化操作,所以无异于编、解码便会经常用到的操作;

当然除了这种方式之外,还有一种常用的 Base64,此文中不具体细谈, Base64 具体方法可以参考下面资源.

声明:

/*
    URL 编、解码
 */
 
#import <Foundation/Foundation.h>
 
@interface NSString (URLEncodingAdditions)
/** 编码*/
- (NSString *)URLEncodedString;
/** 解码*/
- (NSString *)URLDecodedString;
 
@end

实现:

#import "NSString+URLEncodingAdditions.h"
 
@implementation NSString (URLEncodingAdditions)
//通讯编码
- (NSString *)URLEncodedString {
    NSString *result = (NSString *)
            CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                    (CFStringRef) self,
                    NULL,
                    CFSTR("!*'();:@&=+$,/?%#[] "),
                    kCFStringEncodingUTF8));
 
    return result;
}
//通讯解码
- (NSString *)URLDecodedString {
    NSString *result = (NSString *)
            CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
                    (CFStringRef) self,
                    CFSTR(""),
                    kCFStringEncodingUTF8));
    return result;
}
 
@end

Base64 相关:
方法一:通过 CocoaPods
如果项目中集成了 CocoaPods 可以直接引入" pod 'GTMBase64', '~> 1.0.1' ", 完后通过终端 cd 到当前项目路径下执行一下" pod install ",将其安装成功后在工程中所需要的地方引入其头文件调用接口方法即可;

方法二: 手动集成
如果项目中未集成 CocoaPods 需要稍微麻烦一点首先通过飞机票中的地址 飞机票直达 GTMBase64 下载其 SDK 并添加至项目中,其次完成后续操作,哪里需要哪里引入头文件,最后调用接口方法即可.
注:若使用方法二手动集成的情况下,将其 SDK 导入至工程后可能会出现如下异常"Error:'autorelease' is unavailable: not available in automatic reference counting mode",且莫慌张,属于正常现象,按照如下机票中的步骤操作,一准儿起到药到病除的作用 Error:'autorelease' is unavailable: not available in automatic reference counting mode - iOS .

拓展:
在拓展一下关于 Base64 进行编码主题相关的分享,若有所需可以参考如下分享中的内容.
Base64与百分号编码相关 - iOS

以上便是此次小结和分享的内容,希望能对大家有所帮助.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,923评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,868评论 1 32
  • 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找过工作人可能会更深刻地体会到今年的就...
    iOS_Alex阅读 5,496评论 1 24
  • 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找过工作人可能会更深刻地体会到今年的就...
    SunnyLeong阅读 3,853评论 1 11
  • 虽然现在还是躺在床上修养,也经历了祖传秘方的痛苦折磨。但光明的道路就在前方,我会快些好起来的,但现在是要好好静养,...
    高桥美莎阅读 2,144评论 13 12

友情链接更多精彩内容