1

URL リクエストをロードしたいのですが、URL に望ましくない文字が含まれています (離れた場所から URL を取得しているため、ソースを変更できません)。

NSString *link = [[notification userInfo] valueForKey:@"link"];
link = [link stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSLog(@"Requesting Link: %@",link); /* see below for output */
NSURL *url = [NSURL URLWithString:link];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

[self.theWebView loadRequest:request];

コンソールには、次のような NSLog 出力が表示されます。

%0A%09%09%09http://192.168.0...

loadRequestは何もしません。正しくエンコードされていないためだNSURLと思いますが、これらの文字を削除する方法がわかりません。

編集

生の文字列 (改行とスペース):

Requesting Link: 
        http://192.168.0...
4

4 に答える 4

2

URL の前の文字列に改行文字とタブ文字があります。それらをトリミングします。

NSString *link = [[notification userInfo] valueForKey:@"link"];
link = [link stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSURL *url = [NSURL URLWithString:link];
于 2013-08-28T15:27:14.090 に答える
0

文字列をエンコードするのではなくデコードする必要があります。これを試してください:

NSString *decoded = [link stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2013-08-28T15:24:50.980 に答える
0

を使用してエンコードする前にそれらをトリミングします

    link = [link stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
于 2013-08-28T15:29:20.867 に答える