当前位置: 首页 > news >正文

NSString+URLEncoding.h --使用Obj-C对数据等进行URLEncoding编码

在Objective-c进行网络编程时,经常需要把数据转换成URLEncoding编码,如对+号编码后,变成%2b.这里我们给出一种实现.

 

[cpp]  view plain copy
 

//NSString+URLEncoding.h  

  1. #import   
  2. @interface NSString (URLEncodingAdditions)  
  3. - (NSString *)URLEncodedString;  
  4. - (NSString *)URLDecodedString;  
  5. @end</span>  

 

[cpp]  view plain copy
 

//NSString+URLEncoding.m  

  1. #import "NSString+URLEncoding.h"  
  2. @implementation NSString (OAURLEncodingAdditions)  
  3. - (NSString *)URLEncodedString  
  4. {  
  5.     NSString *result = (NSString *)  
  6.        CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,  
  7.                                                   (CFStringRef)self,  
  8.                                                   NULL,  
  9.                                                   CFSTR("!*'();:@&=+$,/?%#[] "),  
  10.                                                   kCFStringEncodingUTF8);  
  11.     [result autorelease];  
  12. return result;  
  13. }  
  14. - (NSString*)URLDecodedString  
  15. {  
  16.     NSString *result = (NSString *)  
  17.        CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,  
  18.                         (CFStringRef)self,  
  19.                         CFSTR(""),  
  20.                         kCFStringEncodingUTF8);  
  21.     [result autorelease];  
  22. return result;  
  23. }  
  24. @end</span>  

因为是扩展了NSString,使用的时候就比较简单了,首先在使用本类的文件中引入NSString+URLEncoding.h头文件,然后直接用NSString中的URLEncodedString与URLDecodedString方法,如:
NSString *urlToken = [token URLEncodedString];

转载于:https://www.cnblogs.com/kenshinobiy/p/4819259.html

相关文章:

  • 安卓很抱歉已停止运行
  • oracle中execute immediate的使用(select/insert/update/delete)(转)
  • log4j.properties模板
  • BZOJ 1324 Exca神剑 最小割
  • 滚动条美化,两款优秀的模拟滚动条插件
  • HDU 1230解题报告
  • DDR3基本知识及测试【转】
  • 数据结构与算法 Big O 备忘录与现实
  • Web API应用架构设计分析(2)
  • nginx日志轮询
  • JAVA 20 键盘输入
  • 代码面试之串(转载)
  • lua-epoll 模块简单分析
  • MyBatis:简单物理分页实现(Plugin)
  • 堆与堆排序
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【附node操作实例】redis简明入门系列—字符串类型
  • httpie使用详解
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • springMvc学习笔记(2)
  • 构建二叉树进行数值数组的去重及优化
  • 计算机常识 - 收藏集 - 掘金
  • 如何优雅地使用 Sublime Text
  • 事件委托的小应用
  • 正则学习笔记
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • #{}和${}的区别是什么 -- java面试
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (2)MFC+openGL单文档框架glFrame
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)RocketMQ初步认识
  • .gitignore文件—git忽略文件
  • .net framework4与其client profile版本的区别
  • .Net IE10 _doPostBack 未定义
  • .net MVC中使用angularJs刷新页面数据列表
  • .Net Redis的秒杀Dome和异步执行
  • .net 微服务 服务保护 自动重试 Polly
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net多线程总结
  • .net分布式压力测试工具(Beetle.DT)
  • .net生成的类,跨工程调用显示注释
  • @Not - Empty-Null-Blank
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • []常用AT命令解释()
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [C++进阶篇]STL中vector的使用
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [dart学习]第四篇:函数
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [HarekazeCTF2019]encode_and_encode 不会编程的崽
  • [HTML]Web前端开发技术30(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [JavaEE系列] wait(等待) 和 notify(唤醒)