iOS开发中Objective-C 对 URL的URLEncode(编码)与URLDecode(解码)
2017-10-17 15:51
411 查看
版权归Aaidong所有〜转载需声名〜 欢迎大家访问:http://blog.csdn.net/aaidong
废话不多说,直接上代码。
[objc] view
plain copy
<pre name="code" class="objc">
[objc] view
plain copy
//
// NSString+URL.h
//
// Created by aidong on 15/5/8.
// Copyright (c) 2015年 aidong. All rights reserved.
//
/**
* url字符串中具有特殊功能的特殊字符的字符串,或者中文字符,作为参数用GET方式传递时,需要用urlencode处理一下。
*
* 例如:在 iOS 程序访问 HTTP 资源时,像拼出来的 http://unmi.cc?p1=%+&sd f&p2=中文,其中的中文、特殊符号&%和空格都必须进行转译才能正确访问。
*/
/**
* 调用示例:
引入头文件:NSString+URL.h
// URLEncode
NSString *unencodedString = @"cc?p1=%+&sd f&p";
NSString *encodedString = [unencodedString URLEncodedString];
// URLDecode
NSString *undecodedString = @"%25+&sd%20&p2=%E4%B8%AD%E6%96%87";
NSString *decodedString = [undecodedString URLDecodedString];
*/
#import <Foundation/Foundation.h>
@interface NSString (URL)
/**
* URLEncode
*/
- (NSString *)URLEncodedString;
/**
* URLDecode
*/
-(NSString *)URLDecodedString;
@end
[objc] view
plain copy
[objc] view
plain copy
//
// NSString+URL.m
//
// Created by aidong on 15/5/8.
// Copyright (c) 2015年 aidong. All rights reserved.
//
#import "NSString+URL.h"
@implementation NSString (URL)
/**
* URLEncode
*/
- (NSString *)URLEncodedString
{
// CharactersToBeEscaped = @":/?&=;+!@#$()~',*";
// CharactersToLeaveUnescaped = @"[].";
NSString *unencodedString = self;
NSString *encodedString = (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
return encodedString;
}
/**
* URLDecode
*/
-(NSString *)URLDecodedString
{
//NSString *decodedString = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ];
NSString *encodedString = self;
NSString *decodedString = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,
(__bridge CFStringRef)encodedString,
CFSTR(""),
CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
return decodedString;
}
@end
废话不多说,直接上代码。
[objc] view
plain copy
<pre name="code" class="objc">
[objc] view
plain copy
//
// NSString+URL.h
//
// Created by aidong on 15/5/8.
// Copyright (c) 2015年 aidong. All rights reserved.
//
/**
* url字符串中具有特殊功能的特殊字符的字符串,或者中文字符,作为参数用GET方式传递时,需要用urlencode处理一下。
*
* 例如:在 iOS 程序访问 HTTP 资源时,像拼出来的 http://unmi.cc?p1=%+&sd f&p2=中文,其中的中文、特殊符号&%和空格都必须进行转译才能正确访问。
*/
/**
* 调用示例:
引入头文件:NSString+URL.h
// URLEncode
NSString *unencodedString = @"cc?p1=%+&sd f&p";
NSString *encodedString = [unencodedString URLEncodedString];
// URLDecode
NSString *undecodedString = @"%25+&sd%20&p2=%E4%B8%AD%E6%96%87";
NSString *decodedString = [undecodedString URLDecodedString];
*/
#import <Foundation/Foundation.h>
@interface NSString (URL)
/**
* URLEncode
*/
- (NSString *)URLEncodedString;
/**
* URLDecode
*/
-(NSString *)URLDecodedString;
@end
[objc] view
plain copy
[objc] view
plain copy
//
// NSString+URL.m
//
// Created by aidong on 15/5/8.
// Copyright (c) 2015年 aidong. All rights reserved.
//
#import "NSString+URL.h"
@implementation NSString (URL)
/**
* URLEncode
*/
- (NSString *)URLEncodedString
{
// CharactersToBeEscaped = @":/?&=;+!@#$()~',*";
// CharactersToLeaveUnescaped = @"[].";
NSString *unencodedString = self;
NSString *encodedString = (NSString *)
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
return encodedString;
}
/**
* URLDecode
*/
-(NSString *)URLDecodedString
{
//NSString *decodedString = [encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding ];
NSString *encodedString = self;
NSString *decodedString = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL,
(__bridge CFStringRef)encodedString,
CFSTR(""),
CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
return decodedString;
}
@end
相关文章推荐
- iOS开发中Objective-C 对 URL的URLEncode(编码)与URLDecode(解码)
- Url传值编码UrlEncode和解码UrlDecode
- PB powerbuilder 进制转换 url 编码 解码 urlencode urldecode 数组排序
- PHP中编码解码urlencode()、urldecode()、rawurlencode()、rawurldecode()
- iOS开发-iOS中URL字符串的URLencode与URLdecode
- java.net.URLEncode编码 与 URLDecode解码问题
- java.net.URLEncode编码 与 URLDecode解码问题
- 怎么进行:URLEncode编码 与 URLDecode解码
- Objective-C编码规范:26个方面解决iOS开发问题(转)
- IOS中对Url进行编码和解码
- IOS中对Url进行编码和解码
- UrlEncode编码/UrlDecode解码使用方法
- Objective-C 对 URL 进行 URLEncode 编码
- c++ 实现url的转码与解码 urlencode urldecode
- Objective-C 对 URL 进行 URLEncode 编码
- Objective-C编码规范:26个方面解决iOS开发问题
- Objective-C 对 URL 进行 URLEncode 编码
- Objective-C 对 URL 进展 URLEncode 编码
- Objective-C 对 URL 进行 URLEncode 编码
- Objective-C 对 URL 进行 URLEncode 编码