Objective-c中的URL解码[关闭]
Posted
技术标签:
【中文标题】Objective-c中的URL解码[关闭]【英文标题】:URL decode in objective-c [closed] 【发布时间】:2012-09-24 12:04:35 【问题描述】:我有一个名为 url 的字符串,即
NSString *url = @"http://sound17.mp3pk.com/indian/barfi/%5BSongs.PK%5D%20
Barfi%20-%2001%20-%20Barfi!.mp3";
现在我正在下载这首歌并保存它,我需要指定文件名。我希望文件名的方式是它应该从 url 中获取文件名本身。就像在这个 url 中一样,它应该采用 %5BSongs.PK%5D%20
Barfi%20-%2001%20-%20Barfi!.mp3
哪个是 url 中的文件名,但不应由 Url 格式化程序组成。
我正在做的是
Dest_path=[NSHomeDirectory() stringByAppendingString:@"/Documents/a3"];
result =[Dest_path stringByAppendingString:@".mp3"];
helper = [DownloadHelper download:url withTargetPath:result withDelegate:self];
【问题讨论】:
你的问题的标题没有多大帮助。用一句话就能说出你想知道的东西是一个很好的练习。 感谢您的建议。请立即查看..了解是否有帮助! @PhillipMills 我将使用该链接。 【参考方案1】:这样的事情应该可以工作:
NSString *URLString = @"http://sound17.mp3pk.com/indian/barfi/%5BSongs.PK%5D%20Barfi%20-%2001%20-%20Barfi!.mp3";
NSURL *URL = [NSURL URLWithString:url];
NSString *filename = [[[URL path] lastPathComponent] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//=> [Songs.PK] Barfi - 01 - Barfi!.mp3
请注意,如果内容是动态的(例如 http://example.com/getsong?q=foobar
之类的内容),您不能总是从 URL 中获得有用的文件名。
编辑:从任意 URL 获取文件名的更好方法是发出请求并检查响应的 Content-Disposition
HTTP header。
【讨论】:
您可能应该注意到有更好的方法来获取文件名,例如HTTP 标头。 @RichardJ.RossIII 你能给我链接或其他一些信息吗? @omz 在这种情况下我该怎么办?还是您有其他选择来提供文件名。以上是关于Objective-c中的URL解码[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
将 Objective-C / iOS 字符串转换为 URL 的正确语法是啥? [关闭]
获取用于保存在objective-c中的最后一个目录的路径[关闭]