Iphone NSData&;NSURL-空间有问题的url
我的应用程序中有以下代码Iphone NSData&;NSURL-空间有问题的url,iphone,xcode,nsdata,nsurl,Iphone,Xcode,Nsdata,Nsurl,我的应用程序中有以下代码 NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]]; PathoftHumbail有以下路径 58B.jpg 当我在safari浏览器中打开上面的路径时-路径将自动更改并成功显示图像 但在iPhone中,由于路径中有空格,图像不会加载到nsdata中。使用:stringByAddingPercentEscapesUsingEncoding: 返回使用
NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:pathOfThumbNail]];
PathoftHumbail有以下路径
58B.jpg
当我在safari浏览器中打开上面的路径时-路径将自动更改并成功显示图像
但在iPhone中,由于路径中有空格,图像不会加载到nsdata中。使用:stringByAddingPercentEscapesUsingEncoding: 返回使用给定编码的接收器表示形式,以确定将接收器转换为合法URL字符串所需的转义百分比
-(NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
接收方的一种表示形式,使用编码来确定将接收方转换为合法URL字符串所需的转义百分比。如果编码无法对特定字符进行编码,则返回nil
按@rule的请求添加
NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
NSLog(@"urlText: '%@'", urlText);
NSLog(@"urlTextEscaped: '%@'", urlTextEscaped);
NSLog(@"url: '%@'", url);
NSLog输出:
urlText: '70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg'
urlTextEscaped: '70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg'
url: '70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg'
urlText:'70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg'
URLTEXIT:'70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg'
url:'70.84.58.40/projects/igolf/TipThumb/GOLF%2058B.jpg'
swift 3.0方法(stringByAddingPercentEscapesUsingEncoding和stringByAddingPercentEncodingWithAllowedCharacters现在似乎不推荐):
iOS 9.0中已弃用
stringByAddingPercentEscapesUsingEncoding
,建议您改用stringByAddingPercentEncodingWithAllowedCharacters
以下是>iOS 9.0的Objective-C代码
NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
NSLog(@"urlText: '%@'", urlText);
NSLog(@"urlTextEscaped: '%@'", urlTextEscaped);
NSLog(@"url: '%@'", url);
伟大的正是我想要的。事实上,我知道它,但忘记了由于项目负载。谢谢你对我的帮助。你的回答很好,但你应该给出一个像这样的例子:NSString*urlText=@“58B.jpg”;urlText=[urlText stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSURL*url=[NSURL URLWithString:urlText];注意:stringByAddingPercentEscapesUsingEncoding不编码保留字符,如和号(&)和斜杠(/),谢谢@Zaph,这确实非常有用。问得好,在遇到类似问题时意外发现了这个问题。
NSString* urlText = @"70.84.58.40/projects/igolf/TipThumb/GOLF 58B.jpg";
NSString* urlTextEscaped = [urlText stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString: urlTextEscaped];
NSLog(@"urlText: '%@'", urlText);
NSLog(@"urlTextEscaped: '%@'", urlTextEscaped);
NSLog(@"url: '%@'", url);