NSString自带的的方法URL encoding的编码问题
2013-06-19 15:24
267 查看
NSString *password = @"Top+Secret. ";NSString *encoded_normal = [password stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSString *encoded_safer = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)password, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);// output with %@ otherwise the % escapes cause strange outputNSLog(@"%@", password);NSLog(@"%@", encoded_normal);NSLog(@"%@", encoded_safer);
通过输出情况看,用stringByAddingPercentEscapesUsingEncoding:方法编码时,+号没有编码,存在不encode的情况[/code]
推荐使用CFURLCreateStringByAddingPercentEscapes()下面是一个给NSString添加的类别,来实现encode[/code]
#import@interface NSString (Helpers)// helper functions- (NSString *) stringByUrlEncoding;@end
#import "NSString+Helpers.h"@implementation NSString (Helpers)#pragma mark Helpers- (NSString *) stringByUrlEncoding{return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);}
相关文章推荐
- NSStringEncoding关于文字编码问题的解决方法
- Apache2.2+mod_encoding解决URL中文编码问题-2008.1.8
- Apache2.2+mod_encoding解决URL中文编码问题
- Apache-2.2.8+mod_encoding解决URL中文编码问题-2008.1.8
- Apache2.2+mod_encoding解决URL中文编码问题
- url的编码问题
- ajax在提交url时候遇到的编码问题
- Python2 编码问题实用解决方法
- Nginx将utf8编码的url解码成\x的16进制格式导致无法匹配静态文件的问题处理
- iOS重新定义系统自带的方法,如 重定义 CGRectMake 和 CGPointMake 可以解决屏幕适配的问题
- ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明
- 我用python将结果写入txt文件出现的编码问题及其解决方法
- ASP.NET MVC中 CKeditor 通过两种方法向后台传值以及编码、乱码问题
- 使用Curl进行抓取远程内容时url中文编码问题
- 东芝笔记本自带蓝牙在ubuntu中的驱动问题修复方法
- Python3.6通过自带的urllib通过get或post方法请求url的实例
- Java解决在浏览器地址栏中输入url访问action的问题以及拦截方法过滤的简易实现
- 重编码解决GET方法前台传后台汉字乱码问题
- 编码问题 request和response的setCharacterEncoding()和setContentType()编码问题
- 修改版的java导入编码问题(方法)