2010-11-10 10 views
7

Jak mogę kodować ten link ma być wyświetlany w UIWebView:bibliotece NSURL ze znakami specjalnymi

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

Próbowałem:

-stringByAddingPercentEscapesUsingEncoding:NSUnicodeStringEncoding 
-stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding 

i

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

dzięki

Joerg

Odpowiedz

7

Koduje tylko część wyszukiwania łańcucha 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]; 

(. Zauważ również, że NSUTF8StringEncoding jest kodowanie używane)

+1

ok może to być podejście, ale nie jestem pewien, czy adres URL zawsze będzie wyglądał tak. Może również być: http://de.wikipedia.org/wiki/Bevölkerungsentwicklung – Joerg

+0

@Joerg: Przepraszam; Zakładałem, że wyszukiwane hasło było wprowadzane przez użytkownika. : S – Wevah

+0

'stringByAddingPercentEscapesUsingEncoding' jest przestarzałe: zamiast tego użyj' stringByAddingPercentEncodingWithAllowedCharacters (_ :) ', który zawsze używa zalecanego kodowania UTF-8, i który koduje określony komponent URL lub podskładnik, ponieważ każdy komponent lub podskład URL lub komponent ma inne reguły znaki są poprawne. –

2

Wystarczy skorzystać z poniższego przykładowego kodu;


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

hm tak, ale szukam więcej rozwiązania dla zakodowania dowolnego adresu URL. to również może być: http://de.wikipedia.org/wiki/Bevölkerungsentwicklung – Joerg

1

Znalazłem także, że dla niektórych postaci z Europy Północnej, NSISOLatin1StringEncoding pasuje lepiej. Ten daje mi lepszy wynik

Powiązane problemy