Декодирование / кодирование URL NSString - PullRequest
0 голосов
/ 14 июля 2011

Я использую URL-навигатор Three20 и хочу создать карту следующим образом:

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

Проблема здесь name может состоять из нескольких слов, поэтому между ними есть пробелы. Теперь мне нужно URL кодировать это NSString и декодировать его обратно. Как мне это сделать? Какой самый простой способ декодирования и кодирования URL-адреса NSString?

Ответы [ 2 ]

3 голосов
/ 14 июля 2011
- (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 голосов
/ 14 июля 2011

Вы можете начать с

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

чтобы получить URL-адрес из строки NSString.

Также см. здесь о URL, кодирующем его с правильными escape-кодами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...