我正在使用three20的URL导航器,我想创建一个如下地图:
[map from:[Group class] name:@"show" toURL:@"tt://group/(gid)/(name)"];
这里的问题名称可以是多个单词,因此中间有空格。
现在我需要对此NSString
进行URL编码并对其进行解码。我该怎么做呢?
URL解码和编码NSString
的最简单方法是什么?
答案 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关于使用正确的转义码对其进行网址编码。