URL解码/编码NSString

时间:2011-07-14 03:51:36

标签: iphone objective-c ipad

我正在使用three20的URL导航器,我想创建一个如下地图:

[map from:[Group class] name:@"show" toURL:@"tt://group/(gid)/(name)"];

这里的问题名称可以是多个单词,因此中间有空格。 现在我需要对此NSString进行URL编码并对其进行解码。我该怎么做呢? URL解码和编码NSString的最简单方法是什么?

2 个答案:

答案 0 :(得分:3)

- (NSString *)encodedURLString {
    NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)self,
                                                                           NULL,                   
                                                                           CFSTR("?=&+"),          
                                                                           kCFStringEncodingUTF8); // encoding
    return [result autorelease];
}

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

答案 1 :(得分:0)

你可以从

开始
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];

从NSString获取网址。

另外,请参阅here关于使用正确的转义码对其进行网址编码。