iOS中url中特殊字符请求为空

项目中加载图片时因为图片地址中有特殊字符,导致图片无法加载,错误但写法是:

NSString str = [NSString stringWithFormat:@”%@”,@”http://list.vip.com/557574.html?shop_r=557574&f=ad&ff=72|1|1|1&sche=mocha“];
NSURL
url = [NSURL URLWithString:str];
[self.testUIImageView setImageWithURL:url];

正确但写法

NSString str = [NSString stringWithFormat:@”%@”,@”http://list.vip.com/557574.html?shop_r=557574&f=ad&ff=72|1|1|1&sche=mocha“];
NSString
urlStr = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:urlStr];
[self.testUIImageView setImageWithURL:url];

 

错误分析过程,当把urlString不经过处理直接使用的时候发现,传入setImageWithURL的url是null,而把url直接放入浏览器发现url变成了http://list.vip.com/557574.html?shop_r=557574&f=ad&ff=72|1|1|1&sche=mocha
显然URL经过了浏览器的编码处理。所以问题解决办法就很明显了。