如何从NSString中删除这些字符

时间:2013-08-28 15:19:39

标签: ios objective-c

我想加载一个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 个答案:

答案 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];