2011-07-14 157 views
0

我使用three20的網址導航,我想創建一個圖如下:URL解碼/編碼的NSString

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

問題在這裏名稱可以是多個單詞等有空格之間。 現在我需要對這個NSString進行網址編碼並將其解碼回來。我該怎麼做呢? 什麼是最簡單的URL解碼和編碼方式NSString

+0

的可能重複的[目標C iPhone百分之編碼的字符串?](http://stackoverflow.com/questions/3423545/objective-c-iphone-percent-encode-a-string) – benzado

回答

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]; 
} 
0

您可以

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

開始得到來自的NSString的URL。

此外,請參閱here關於URL編碼與適當的轉義。

+0

我不我不想要一個URL,我想要一個字符串編碼的NSString – adit