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

IOS中对Url进行编码和解码

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

//ARC模式下

//加密

- (NSString *)encodeToPercentEscapeString:(NSString *)url
{
    NSString *outputStr =
    (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                                NULL, /* allocator */
                                                                (__bridge CFStringRef)url,
                                                                NULL, /* charactersToLeaveUnescaped */
                                                                (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                                kCFStringEncodingUTF8);
    return outputStr;
}

//解码

+ (NSString *)decodeFromPercentEscapeString:(NSString *)url
{
    NSMutableString *outputStr = [NSMutableString stringWithString:url];
    
    [outputStr replaceOccurrencesOfString:@"+"
                               withString:@""
                                  options:NSLiteralSearch
                                    range:NSMakeRange(0,[outputStr length])];
    
    return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}

//1.非ARC模式下

// Encode all the reserved characters, per RFC 3986    // ()
+ (NSString *)encodeToPercentEscapeString:(NSString *)url {
    NSString *outputStr =
    (NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                       kCFAllocatorDefault,(CFStringRef)url,
                                                       NULL,
                                                       (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                       kCFStringEncodingUTF8);
    return outputStr;
}
+ (NSString *)decodeFromPercentEscapeString:(NSString *)url {
    NSMutableString *outputStr = [NSMutableString stringWithString:url];
    
    [outputStr replaceOccurrencesOfString:@"+"
                               withString:@" "
                                  options:NSLiteralSearch
                                    range:NSMakeRange(0, [outputStr length])];
  
    return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
}



转载于:https://my.oschina.net/ospost90s/blog/646960

相关文章:

  • Uber CEO博鳌论坛采访:看好中国市场共享经济的发展模式
  • linux tmp75 /dev/i2c-* 获取数据 demo
  • 《Thinking in Java》Forth 控制执行流程
  • Android学习笔记-----------广播
  • Ajax跨域访问
  • UILabel和Scrollview结合用,label高度自适应
  • Analytics.js简介
  • YII文件上传
  • Linux下ssh远程连接慢解决
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • 高项-3月30号培训作业
  • ThreadPoolExecutor运行机制
  • 循环创建按钮
  • python3-itertools模块和迭代器函数
  • Java字节码浅析(三)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • CEF与代理
  • java2019面试题北京
  • js学习笔记
  • Linux后台研发超实用命令总结
  • mysql innodb 索引使用指南
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • React as a UI Runtime(五、列表)
  • REST架构的思考
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Vue组件定义
  • 包装类对象
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 爬虫模拟登陆 SegmentFault
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 新版博客前端前瞻
  • 学习JavaScript数据结构与算法 — 树
  • 译有关态射的一切
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • $.ajax()方法详解
  • (2)STM32单片机上位机
  • (libusb) usb口自动刷新
  • (备忘)Java Map 遍历
  • (独孤九剑)--文件系统
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)visual stdio 书签功能介绍
  • (转)母版页和相对路径
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core使用RPC方式进行高效的HTTP服务访问