在我的iOS应用中,我正在从服务器下载图像。对于服务器上的每个图像,我都会使用它的URL(路径),记录它,然后将其添加到数组中。我的问题是服务器上的一个图像在文件名本身中有引号。所以,当我像这样记录URL时:
NSLog(@"New file path reads: %@", /*path on server*/);
日志输出显示:
新文件路径为:http://server.com/folder/ \“Image \”。jpeg
这是预期的,因为(\“)转义码返回字符(”)并且文件下载正常。接下来,我使用文件的路径创建一个NSString来显示文件的名称。我这样做只是简单地替换文件名字符串中出现的“http://server.com/folder/”。对于所有其他文件,这完美地工作,例如如果我在路径上有一个文件:
新显示名称为:
Test.jpeg
但是,当文件名/路径中包含引号时(如“Image”.jpeg),显示名称为:
%5C%22Image%5C%22.jpeg
所以,我的问题是:当我所做的只是替换“http://server.com/folder/”的出现时,为什么显示名称与我记录的URL不同?我该如何解决这个问题?
任何帮助都会非常感激,我到处寻找答案,但找不到任何有用的东西!
更新:我刚刚意识到这会发生很多字符(<,>等)
答案 0 :(得分:1)
这是URL编码。你可以得到你想要的东西:
[encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
答案 1 :(得分:1)
听起来我很可能想要使用NSURL
方法-lastPathComponent
。它将为您正确拉出URL,并在此过程中执行转义。