2012-06-01 88 views
2

我需要解析我的應用程序中的FILE URL,並將%20替換爲SPACE。我使用stringByReplacingOccurance:stringByReplacingOccurrence不會替換字符串

NSString *strippedContent = [finalFilePath stringByReplacingOccurrencesOfString:@"%20" withString:@" "]; 

但是,當我在的NSLog顯示strippedContent,所有的%20個字符串仍然存在。這是我希望能解析該文件名的示例:

.../Documents/Inbox/Test%20Doc%20From%20Another%20App.txt 

看來,如果的NSFileManager無法找到該文件時,它有20%在它。 文件路徑通過「Open In ...」對話框從另一個應用程序傳遞。有沒有什麼辦法可以通過stringByReplacingOccurrence或者導入URL來移除%20?

+0

我想這個代碼的NSString * finalFilePath = @」 ... /文件/收件箱/測試%20Doc%20From%20Another%20App.txt「; NSString * strippedContent = [finalFilePath stringByReplacingOccurrencesOfString:@「%20」withString:@「」]; //在此處插入代碼... NSLog(@「%@」,strippedContent);我得到了輸出「... /文件/收件箱/測試文檔從另一個App.txt」 –

+0

我認爲你的代碼工作正常.. –

回答

9

NSString規定執行,你需要轉換的方法:

NSString *strippedContent = [finalFilePath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
+0

應該指出,這隻會刪除百分號,他們將不得不執行另一次通過使用NSString * strippedContent = [finalFilePath stringByReplacingOccurrencesOfString:@「20」withString:@「」]; – trumpetlicks

1

是的,你應該使用:

NSString * strippedContent = [finalFilePath stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
+0

他想刪除百分號轉義,而不是添加它們。 –

+0

@ Evan Mulawski對不起,修正了 – self

+0

@self - 你和'@ dasblinkenlight'答案有什麼不同? – TheTiger