NSURL со специальными символами - PullRequest
7 голосов
/ 10 ноября 2010

Как я могу закодировать этот URL для отображения в UIWebview:

http://de.wikipedia.org/?search=Bevölkerungsentwicklung

Я пытался:

-stringByAddingPercentEscapesUsingEncoding:NSUnicodeStringEncoding
-stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding

и

CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                        (CFStringRef)mobileUrl,
                                        NULL,
                                        (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                        kCFStringEncodingUTF8);

спасибо

Йорг

Ответы [ 3 ]

7 голосов
/ 10 ноября 2010

Кодировать только часть поиска в строке URL:

// searchString is the unescaped search string, e.g., "Bevölkerungsentwicklung"

NSString *encodedSearchString = [searchString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString stringWithFormat:@"http://de.wikipedia.org/?search=%@", encodedSearchString];
NSURL *url = [NSURL URLWithString:urlString];

(Обратите внимание, что NSUTF8StringEncoding используется в качестве кодировки).

2 голосов
/ 10 ноября 2010

Просто используйте приведенный ниже пример кода;


NSString *urlstring = [NSString stringWithFormat:@"http://de.wikipedia.org/?search=%@", searchString];
NSString *encodedString = [urlstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:encodedString];
1 голос
/ 14 апреля 2013

Я также обнаружил, что для некоторых символов Северной Европы NSISOLatin1StringEncoding подходит лучше. Этот дает мне лучший результат

- (void) testEncoding {
    NSString * urlString = @"http://example/path/fileName_blå.pdf";
    urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding];
    NSURL * url = [NSURL URLWithString:urlString];
    NSLog(@"URL: %@", url);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...