RL 编、解码(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 进行编码主题相关的分享,若有所需可以参考如下分享中的内容.
以上便是此次小结和分享的内容,希望能对大家有所帮助.
RL 编、解码(EncodedString、DecodedString) - iOS的更多相关文章
- Base64编解码Android和ios的例子,补充JNI中的例子
1.在Android中java层提供了工具类:android.util.Base64; 里面都是静态方法,方便直接使用: 使用方法如下: // Base64 编码: byte [] encode = ...
- IOS和Android支持的音频编解码
1.IOS编码 参考文档地址:https://developer.apple.com/library/ios/documentation/AudioVideo/Conceptual/Multimedi ...
- ios Base64编解码工具类及使用
为了避免明码传递http内容,可以用base64编码后传输,收到方再解码,也方便了2进制数据的字符串式传输. 对于ios来说,google给提供了一个很好的工具类,方便进行base64编解码,当然也可 ...
- H.264格式,iOS硬编解码 以及 iOS 11对HEVC硬编解码的支持
H.264格式,iOS硬编解码 以及 iOS 11对HEVC硬编解码的支持 1,H.264格式 网络表示层NAL,如图H.264流由一帧一帧的NALU组成: SPS:序列参数集,作用于一系列连续的编码 ...
- iOS8系统H264视频硬件编解码说明
公司项目原因,接触了一下视频流H264的编解码知识,之前项目使用的是FFMpeg多媒体库,利用CPU做视频的编码和解码,俗称为软编软解.该方法比较通用,但是占用CPU资源,编解码效率不高.一般系统都会 ...
- FFMPEG视音频编解码零基础学习方法-b
感谢大神分享,虽然现在还看不懂,留着大家一起看啦 PS:有不少人不清楚“FFmpeg”应该怎么读.它读作“ef ef em peg” 0. 背景知识 本章主要介绍一下FFMPEG都用在了哪里(在这里仅 ...
- [总结]FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...
- ilbc编解码在android实现
iLBC 是为专为提供稳健的 IP 语音通信而开发的语音 codec,以窄带语音为设计基础,具有 8 kHz 的采样率.iLBC codec 支持两种基本的帧长度:13.3 kbps 比特率下编码帧长 ...
- [转载] FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...
- IP通信中音频编解码技术与抗丢包技术概要
此文较长,建议收藏起来看. 一.一个典型的IP通信模型 二.Server2Server技术分类 Server2Server这块也是一个专门的领域,这里只简单分个类. 1.同一国家相同运营商之间: 同一 ...
随机推荐
- 1、操作表 ActionSheet
/* --- page1.html ---*/ <ion-navbar *navbar> <ion-title>Tab 1</ion-title> </ion ...
- OpenLayers 3 实现轨迹回放
function PathBack() { var PVLayer = new ol.layer.Vector({ source: new ol.source.Vector({}) }); var p ...
- Python3.4 获取百度网页源码并保存在本地文件中
最近学习python 版本 3.4 抓取网页源码并且保存在本地文件中 import urllib.request url='http://www.baidu.com' #上面的url一定要写明确,如果 ...
- Linux服务器性能评估与优化(一)
网络内容总结(感谢原创) 1.前言简介 一.影响Linux服务器性能的因素 1. 操作系统级 性能调优是找出系统瓶颈并消除这些瓶颈的过程. 很多系统管理员认为性能调优仅仅是调整一下 ...
- ImageLoader简单使用
效果图就是一个从网络加载的图片:在加载的时候图片的中间显示一个进度条 数据是随便找的一个网络图片的地址 导入jar包universal-image-loader-1.9.5 用来展示商品使用 在 ...
- keras 自定义 custom 函数
转自: https://kexue.fm/archives/4493/,感谢分享! Keras是一个搭积木式的深度学习框架,用它可以很方便且直观地搭建一些常见的深度学习模型.在tensorflow出来 ...
- linux下的动态链接库管理
LD_LIBRARY_PATH Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径.(该路径在默认路径之前查找) 移植程序时的经常碰到需要使用一些特定的动 ...
- SqlServer存储过程示例
/* 步骤1 删除本地及海关单证待分派表.报关单表中的数据 delete from W_DOCUMENTS; delete from W_DOCUMENTS_TEST; delete from W_D ...
- 1.6 WEB API NET CORE 使用Redis
一.Redis安装 https://www.cnblogs.com/cvol/p/9174078.html 二.新建.net core web api程序 选webapi 或者应用程序都可以 三.使用 ...
- Selenium2学习(十三)-- JS处理滚动条
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...