- 浏览: 624087 次
文章分类
最新评论
-
q781253433:
qin ~.求demo看看~
Android之Widget -
zhongyuanceshi:
博主,没看到你的例子的Demo,共享下
Android之Widget
原文:http://blog.csdn.net/kesalin/article/details/6678939
NSString 的 stringByAddingPercentEscapesUsingEncoding 可以对 url 参数进行编码,但是有点小问题,不会对所有需要编码的字符都编码。我们可以通过 CFStringRef 的
CFURLCreateStringByAddingPercentEscapes 函数来封装这个功能。代码如下:
- - (NSString *)encodeToPercentEscapeString: (NSString *) input
- {
- // Encode all the reserved characters, per RFC 3986
- // (<http://www.ietf.org/rfc/rfc3986.txt>)
- NSString *outputStr = (NSString *)
- CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
- (CFStringRef)input,
- NULL,
- (CFStringRef)@"!*'();:@&=+$,/?%#[]",
- kCFStringEncodingUTF8);
- return outputStr;
- }
- - (NSString *)decodeFromPercentEscapeString: (NSString *) input
- {
- NSMutableString *outputStr = [NSMutableString stringWithString:input];
- [outputStr replaceOccurrencesOfString:@"+"
- withString:@" "
- options:NSLiteralSearch
- range:NSMakeRange(0, [outputStr length])];
- return [outputStr stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- }
测试代码:
- NSString * testUrl = @"http://search.google.com?keywords=($# it's {a*123})00!*'();:@&=+$,/?%#[]";
- NSLog(@"original: %@", testUrl);
- NSString * encodeStr = [self encodeToPercentEscapeString:testUrl];
- NSLog(@"encoded: %@", encodeStr);
- NSString * encodeStr2 = [testUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- NSLog(@"encoded2:%@", encodeStr2);
- NSString * decodeStr = [self decodeFromPercentEscapeString:encodeStr];
- NSLog(@"decoded: %@", decodeStr);
结果如下:
- >> original: http://search.google.com?keywords=($# it's {a*123})00!*'();:@&=+$,/?%#[]
- >> encoded: http%3A%2F%2Fsearch.google.com%3Fkeywords%3D%28%24%23%20it%27s%20%7Ba%2A123%7D%2900%21%2A%27%28%29%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23%5B%5D
- >> encoded2: http://search.google.com?keywords=($%23%20it's%20%7Ba*123%7D)00!*'();:@&=+$,/?%25%23%5B%5D
- >> decoded: http://search.google.com?keywords=($# it's {a*123})00!*'();:@&=+$,/?%#[]
发表评论
-
tableview FPS 优化
2016-06-28 11:26 1现状: 在滚动tableview ... -
iOS 开发者中的公司账号与个人账号之间有什么区别?
2016-06-23 14:54 500原文:http://www.zhihu.com/questio ... -
strong weak copy
2016-04-24 21:01 629copy的使用 如果是mutable,则co ... -
App性能优化思考
2015-10-13 15:24 906一个app的数据 启动时间 crash率 每个 ... -
iOS之手势操作
2015-01-19 10:24 780手势学习: https://developer. ... -
iOS之网络学习
2015-01-19 10:23 641网络学习: http://nshipster.c ... -
nib文件的加载过程
2014-10-24 13:39 792参考:http://blog.csdn.net/nokiax ... -
NSCoder&&NSCoding使用
2014-10-24 11:38 756NScoder和NScoding的作用是将自定义的类的对象持 ... -
Autolayout学习
2014-10-20 16:32 744参考: http://my.oschina. ... -
IOS开发屏幕适配总结
2014-10-20 16:28 447面对4个分辨率的iPhone,建议使用Auto Layou ... -
Size Classes学习
2014-10-20 16:27 764Size Classes介绍:http://blog.su ... -
iPhone6分辨率以及适配
2014-10-20 11:36 1307对iPhone6适配的两种方式:1、兼容模式 这种模式 ... -
Core Animation简介
2014-10-19 15:33 778在iOS中,整个view都是直接构建在Core Animat ... -
Charles使用——HTTP代理服务器
2014-10-19 15:32 2054* HTTP代理服务器,监听8888端口 * HTTP监视 ... -
《精选》开发中遇到的问题总结
2014-10-19 15:31 10081、新浪微博的使用 使用的事umeng的SDK来调用微信、 ... -
使用JavaScript给UIWebView中的内容注入CSS
2014-10-06 21:26 1156NSString *filePath = [[NSB ... -
UIViewde的属性edgesForExtendedLayout
2014-09-26 17:56 692edgesForExtendedLayout 指定边缘 ... -
UIView的属性autoresizingMask
2014-09-26 17:36 764在 UIView 中有一个autoresizingMask ... -
UIWebView获取内容的高度
2014-09-24 13:13 744// 第一种方法 ... -
storyboard的总结
2014-09-02 11:30 734两个基本概念 scene 就是一个视图控制器 se ...
相关推荐
本文主要介绍IOS中对Url进行编码和解码示例,具体如下: 1.非ARC模式下 + (NSString *)encodeToPercentEscapeString: (NSString *) input { // Encode all the reserved characters, per RFC 3986 // () ...
在处理特殊字符时,可以使用`stringByAddingPercentEncodingWithAllowedCharacters:`方法进行URL编码,防止特殊字符在URL中引起解析问题。例如,空格会被转换为"%20"。相反,如果需要解码,可以使用`...
iOS CSV文件导出,保存 -(void)writeDict:(NSDictionary *)dict forFirst:(BOOL)first{ NSMutableString *str = [NSMutableString string]; //第一次写入字典的key值 if (first) { for (NSString *key in ...
这里,我们不再需要手动转换编码,因为`.utf8`是`NSString`的内置编码之一,可以直接用于从URL加载UTF-8编码的字符串。 需要注意的是,上述代码中的`try!`表示我们假设数据加载和字符串创建不会出错。在实际应用中...
ios录音的caf文件转MP3文件,以兼容android 注意音频参数的设置,如果声音异常,请调整参数。 code: AVAudioSession *session = [AVAudioSession sharedInstance]; NSError *sessionError; [session ...
在iOS开发中,数据交换和存储常常涉及到JSON格式,它是一种轻量级、易于阅读和编写的文本格式。本文将详细讲解如何在Objective-C或Swift环境下,针对ARC(Automatic Reference Counting)内存管理机制,实现JSON实体...
iOS下解析json数据,自己亲自使用过,挺好用的。 使用JSONKit的解析方法:(需导入包:#import "JSONKit/JSONKit.h") - (void)printJson{ //如果json是“单层”的,即value都是字符串、数字,可以使用...
在iOS开发中,二维码(Quick Response Code)是一种广泛使用的数据编码方式,允许用户快速扫描获取信息,如网址、联系人信息、文本等。在iOS 7及更高版本中,Apple引入了Core Image框架,提供了对二维码生成和识别的...
在iOS开发中,Objective-C是一种主要的编程语言,它提供了强大的动态性,使得开发者可以在运行时修改类的行为。本文将深入探讨如何利用Runtime机制给已有的类添加对象属性和非对象属性。 首先,理解Runtime机制是...
在iOS开发中,数据持久化是一项重要的技术,用于在应用退出后仍能保存用户的数据,以便下次使用时恢复。Plist(Property List)是苹果提供的一种数据存储格式,常用于简单数据结构的存储,如数组、字典、字符串、...
在iOS开发中,`plist`(Property List)是一种常见的数据存储方式,用于持久化应用程序的数据。它是XML或二进制格式的文件,可以存储数组、字典、字符串、数字、日期等多种基本数据类型。本篇文章将深入探讨iOS中`...
FFRouter 是 iOS 中一个强大且易用的 URL 路由库,支持 URL Rewrite,使 APP 在发布之后也可以动态修改相关路由逻辑。基于匹配查找 URL,效率高。集成和使用都非常简单! Github链接:FFRouter 功能 具备基本的 ...
在iOS应用开发中,二维码(QR Code)扫描是一项常见的功能,可以用于快速交换信息、链接、联系方式等。本文将深入探讨如何在iOS中实现二维码扫描和生成,主要涉及ZBarSDK用于扫描,libqrencode库用于生成二维码。 ...
在iOS和macOS开发中,Xcode是一款至关重要的集成开发环境(IDE),它为开发者提供了丰富的功能,包括代码编辑、调试、构建以及项目管理等。本文将深入探讨"Xcode代码生成"这一主题,主要涉及懒加载、NSCoding协议...
JavaScriptCore 是苹果在其移动操作系统 iOS 和 macOS 中内置的一个框架,用于在原生应用程序中执行 JavaScript 代码。这个框架使得 iOS 开发者可以充分利用 JavaScript 的灵活性和动态性,同时结合 Objective-C 或 ...
本文将深入探讨Ascii85编码,以及如何在Objective-C中利用类别(Category)为NSData和NSString添加这种编码功能。 Ascii85编码源于Adobe PostScript,后来被纳入了RFC 1924标准,其目的是将二进制数据转换为ASCII...
我们可以预想JKCommonFunc.h中会定义一个类(例如`JKBase64Util`),声明了Base64编码和解码的相关方法,如`+ (NSString *)base64Encode:(NSData *)data`和`+ (NSData *)base64Decode:(NSString *)base64String`。...
3. 遍历过程中,根据属性类型设置对应的编码类型,例如,如果是`NSString`、`NSNumber`、`NSArray`或`UIImage`,我们将类型字符串替换为预定义的常量,以便后续进行编码操作。 4. 使用`valueForKey:`方法获取属性的...
iOS Runntime 是Objective-C的重要组成部分,它赋予了这个语言强大的动态特性。在Objective-C中,我们可以在程序运行时动态地添加、修改或查询类的方法。`class_addMethod`函数是实现这一功能的关键,它允许我们在...
在HandyJSON中,可以使用`encode`方法直接将对象编码为JSON数据: ```objc NSDictionary *dict = [model toDictionary]; NSString *jsonString = [NSJSONSerialization JSONObjectWithData:[NSJSONSerialization ...