我想加载一个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...
答案 0 :(得分:2)
网址前面的字符串中有换行符和制表符。修剪它们:
NSString *link = [[notification userInfo] valueForKey:@"link"];
link = [link stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSURL *url = [NSURL URLWithString:link];
答案 1 :(得分:0)
你必须不编码但解码你的字符串,试试这个:
NSString *decoded = [link stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
答案 2 :(得分:0)
使用
进行编码前修剪它们 link = [link stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
答案 3 :(得分:0)
使用此
[link stringByRemovingPercentEncoding];