0

在我的 iOS 应用程序中,我正在从服务器下载图像。对于服务器上的每张图片,我都会获取它的 URL(路径),记录它,然后将它添加到一个数组中。我的问题是服务器上的一个图像在文件名本身中有引号。因此,当我像这样记录 URL 时:

NSLog(@"New file path reads: %@", /*path on server*/);

日志输出显示:

新文件路径为:http ://server.com/folder/ \"Image\".jpeg

这是预期的,因为 (\") 转义码返回字符 (") 并且文件下载正常。接下来,我使用文件的路径创建一个 NSString 来显示文件的名称。我通过简单地替换文件名字符串中出现的“ http://server.com/folder/ ”来做到这一点。对于所有其他文件,这非常有效,例如,如果我在路径中有一个文件:

http://server.com/folder/Test.jpeg

新的显示名称将显示为:

测试.jpeg

但是,当文件名/路径中包含引号时(如“Image”.jpeg),显示名称为:

%5c%22图像%5c%22.jpeg

所以,我的问题是:当我所做的只是替换“ http://server.com/folder/ ”的出现时,为什么显示名称与我记录的 URL 不同,我该如何解决这个问题?

任何帮助将不胜感激,我到处寻找答案,但找不到任何有用的东西!

更新:我刚刚意识到这发生在很多字符(<,>等)

4

2 回答 2

1

在我看来,您很可能想使用该NSURL方法-lastPathComponent。它会为您正确地分离 URL,并在该过程中执行取消转义。

于 2013-07-31T14:50:22.617 回答
1

那就是 URL 编码。你可以像这样得到你想要的:

[encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
于 2013-07-30T01:27:59.190 回答