如何使用Obj-C对数据进行URL编码处理?

2026-06-10 09:0310阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计291个文字,预计阅读时间需要2分钟。

如何使用Obj-C对数据进行URL编码处理?

在Objective-C进行网络编程时,经常需要将数据转换成URLEncoding编码。例如,对+号和#号编码后,变成%。下面给出一种实现方式:

objective-cNSString *encodeString(NSString *str) { NSMutableString *encodedString=[NSMutableString stringWithCapacity:str.length]; for (unichar c=0; c < [str length]; c++) { unichar character=[str characterAtIndex:c]; if (character=='+') { [encodedString appendString:@%2B]; } else if (character=='#') { [encodedString appendString:@%23]; } else { [encodedString appendFormat:@%C, character]; } } return encodedString;}


在Objective-c进行网络编程时,经常需要把数据转换成URLEncoding编码,如对+号编码后,变成%2b.这里我们给出一种实现.

<span style="font-family:SimSun;font-size:13px;color:#330033;">//NSString+URLEncoding.h
#import

@interface NSString (URLEncodingAdditions)
- (NSString *)URLEncodedString;
- (NSString *)URLDecodedString;
@end</span>

如何使用Obj-C对数据进行URL编码处理?

<span style="font-family:SimSun;font-size:13px;color:#330033;">//NSString+URLEncoding.m
#import "NSString+URLEncoding.h"
@implementation NSString (OAURLEncodingAdditions)

- (NSString *)URLEncodedString
{
NSString *result = (NSString *)
CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("!*'();:@&=+$,/?%#[] "),
kCFStringEncodingUTF8);
[result autorelease];
return result;
}

- (NSString*)URLDecodedString
{
NSString *result = (NSString *)
CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
(CFStringRef)self,
CFSTR(""),
kCFStringEncodingUTF8);
[result autorelease];
return result;
}
@end</span>

因为是扩展了NSString,使用的时候就比较简单了,首先在使用本类的文件中引入NSString+URLEncoding.h头文件,然后直接用NSString中的URLEncodedString与URLDecodedString方法,如:

NSString *urlToken = [token URLEncodedString];

本文共计291个文字,预计阅读时间需要2分钟。

如何使用Obj-C对数据进行URL编码处理?

在Objective-C进行网络编程时,经常需要将数据转换成URLEncoding编码。例如,对+号和#号编码后,变成%。下面给出一种实现方式:

objective-cNSString *encodeString(NSString *str) { NSMutableString *encodedString=[NSMutableString stringWithCapacity:str.length]; for (unichar c=0; c < [str length]; c++) { unichar character=[str characterAtIndex:c]; if (character=='+') { [encodedString appendString:@%2B]; } else if (character=='#') { [encodedString appendString:@%23]; } else { [encodedString appendFormat:@%C, character]; } } return encodedString;}


在Objective-c进行网络编程时,经常需要把数据转换成URLEncoding编码,如对+号编码后,变成%2b.这里我们给出一种实现.

<span style="font-family:SimSun;font-size:13px;color:#330033;">//NSString+URLEncoding.h
#import

@interface NSString (URLEncodingAdditions)
- (NSString *)URLEncodedString;
- (NSString *)URLDecodedString;
@end</span>

如何使用Obj-C对数据进行URL编码处理?

<span style="font-family:SimSun;font-size:13px;color:#330033;">//NSString+URLEncoding.m
#import "NSString+URLEncoding.h"
@implementation NSString (OAURLEncodingAdditions)

- (NSString *)URLEncodedString
{
NSString *result = (NSString *)
CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("!*'();:@&=+$,/?%#[] "),
kCFStringEncodingUTF8);
[result autorelease];
return result;
}

- (NSString*)URLDecodedString
{
NSString *result = (NSString *)
CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
(CFStringRef)self,
CFSTR(""),
kCFStringEncodingUTF8);
[result autorelease];
return result;
}
@end</span>

因为是扩展了NSString,使用的时候就比较简单了,首先在使用本类的文件中引入NSString+URLEncoding.h头文件,然后直接用NSString中的URLEncodedString与URLDecodedString方法,如:

NSString *urlToken = [token URLEncodedString];