2013-07-30 97 views
0

在我的iOS應用程序中,我從服務器下載圖像。對於服務器上的每個映像,我都將它的URL(路徑)記錄下來,然後將其添加到數組中。我的問題是服務器上的一個映像在文件名中有引號。所以,當我登錄這樣的網址:iOS奇怪地讀取一些字符?

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

日誌輸出寫着:

新的文件路徑如下:http://server.com/folder/ \ 「圖片\」 JPEG

這是預期。因爲(\「)轉義碼返回字符(」)和文件下載正常。接下來,我使用該文件的路徑來創建一個NSString來顯示文件的名稱。我通過簡單地替換文件名字符串中出現的「http://server.com/folder/」來完成此操作。對於所有其他文件,這可以完美地工作,例如如果我有在路徑的文件:

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

新的顯示名稱將改爲:

Test.jpeg

然而,當文件名/ path中有引號(如「Image」.jpeg),顯示名稱如下:

%5C%22Image%5C%22.jpeg

所以,我的問題是:爲什麼比我登錄的網址不同的顯示名稱時,我要做的就是取代「http://server.com/folder/」的發生,我怎樣才能解決這個問題?

任何幫助將非常感激,我到處尋找答案,但找不到任何有用的東西!

更新:我只是意識到這種情況,有很多字符(<,>等)

回答

1

即URL編碼。你可以得到你想要的東西是這樣的:

[encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 
+0

太棒了,非常感謝!不能相信我錯過了... – JohnWickham

1

這聽起來像你對我最有可能要使用的NSURL方法-lastPathComponent。它會爲您正確拆分URL,並將其作爲流程的一部分執行。