如何处理带有空格的URL?

Sep*_*gus 3 objective-c

NSString * urlCached = URL.CacheImageURL;
NSURL * url = [NSURL URLWithString:urlCached];
NSData * data=[NSData dataWithContentsOfURL:url];
Run Code Online (Sandbox Code Playgroud)

它适用于大多数URL.但是,如果网址包含http://google.com/Hello World.htm 等 空格,则无法使用.

我该怎么做这些网址?

小智 5

您可以在URL中转义无效的转义字符:

NSURL *url = [NSURL URLWithString:
    [urlCached stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)

这很容易,但并不总是正确的; 转义有效的URL特殊字符(%,&,?,:)为好,使用CFURLCreateStringByAddingPercentEscapes()功能.