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 回答
0

用这个

[链接 stringByRemovingPercentEncoding];

于 2017-06-06T11:02:32.393 回答