Objective-C 对 URL 进行 URLEncode 编码
2015-10-10 14:43
393 查看
Objective-C 对 URL 进行 URLEncode 编码
方法一:
NSString *encodeStr = (NSString *)[string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
以前一直用这个方法来进行url的转码,但是这样转码有一个问题就是当网址中只有中文时转码是对的,但是如果网址中包含%&? 这些特殊符号时,它也会转换 URL 中的
?%& 符号,导致转换的时候编码错误。
所以现在推荐使用这个方法来进行urlencode
方法二:
NSString *encodeString = (NSString *)CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString,
CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding);
其中参数是:
CFAllocatorRef allocatorkCFAllocatorDefault
CFStringRef originalString 待转码的字符串 要转码的字符串
charactersToLeaveUnescaped 不转义的字符 (CFStringRef)@"!*'();:@&=+$,/?%#[]"
legalURLCharactersToBeEscaped 确定转义的字符
NULL
CFStringEncoding encoding
编码类型 NSUTF8StringEncoding
这个方法有一个好处就是,规定一些字符不尽行转义,虽然使用的过程中方法一也许不会导致程序出错,但是方法二更保险一些
方法一:
NSString *encodeStr = (NSString *)[string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
以前一直用这个方法来进行url的转码,但是这样转码有一个问题就是当网址中只有中文时转码是对的,但是如果网址中包含%&? 这些特殊符号时,它也会转换 URL 中的
?%& 符号,导致转换的时候编码错误。
所以现在推荐使用这个方法来进行urlencode
方法二:
NSString *encodeString = (NSString *)CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString,
CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding);
其中参数是:
CFAllocatorRef allocatorkCFAllocatorDefault
CFStringRef originalString 待转码的字符串 要转码的字符串
charactersToLeaveUnescaped 不转义的字符 (CFStringRef)@"!*'();:@&=+$,/?%#[]"
legalURLCharactersToBeEscaped 确定转义的字符
NULL
CFStringEncoding encoding
编码类型 NSUTF8StringEncoding
这个方法有一个好处就是,规定一些字符不尽行转义,虽然使用的过程中方法一也许不会导致程序出错,但是方法二更保险一些
相关文章推荐
- # xamarin 自动绑定工具sharpie使用介绍
- Objective-C 计算代码运行时间
- linq to object
- NSdata 与 NSString,Byte数组,UIImage 的相互转换—ios开发 Objective-C
- IOS加强知识(1)理解力Objective-C
- a different object with the same identifier value was already associated with the session
- Object-c父类子类
- Object-c 对象的使用和定义
- Object-C总结
- Python中用json.loads解码字符串出错:ValueError: No JSON object could be decoded
- 【Objective-C学习笔记】变量和基本的数据类型
- [Objective-c]_[NSUserDefaults]_[基本使用]
- 黑马程序员-----------Objective-C基础-----------OC基础
- C#中object missing = Type.Missing是什么意思
- shared libraries: libgtest.so.0: cannot open shared object fi
- Attempt to read from field 'int android.view.View.mViewFlags' on a null object reference
- [Objective-c]_[块语法的使用及应用场景]
- iOS开发之Objective-C与JavaScript的交互
- 理解 Objective-C Runtime
- 【FAQ】Gerrit上打开的单子无法打开,点击提示“MissingobjectException:Missing unknown xxxx”