我在與使用URL字符串看起來像這樣創建一個NSURL對象的一個問題:NSURL轉義字符不工作
」 ...... FEXP = 935648%2C945012%2C901066%2C91 ... 「等等(這只是一個部分 - 完整的網址很長)。
該URL包含許多百分比轉義字符(%2C)。我完全無法使用此URL創建NSURL對象(URL本身是正確的,因爲我可以使用瀏覽器打開它)。致電
[[NSURL alloc] initWithString:url];
返回NIL。
只要我通過調用
[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
修改URL我收到有效NSURL對象。
問題是:這個 「有效」 NSURL對象包含無效的URL看起來像這樣:
「...... FEXP = 935648%252C945012%252C901066%225C91 ......」
,你可以請參閱初始百分比轉義字符(%2C)已再次轉義(%252C),這會導致無法打開的URL(再次嘗試使用瀏覽器)。
原始網址由外部工具生成,所以我對其創建機制沒有任何影響。
有沒有人有線索可能是錯的?
如果您在創建NSURL之前調用'stringByRemovingPercentEncoding',它是否工作? '[NSURL URLWithString:[url stringByRemovingPercentEncoding]];' – michaels
我的網址已經被編碼了......你是否再次編碼..試試Michaels評論 – iOSDeveloper
奇怪......只是刪除百分比編碼的字符不起作用。但首先刪除這些字符,並重新添加它們似乎工作......也許有一些東西編碼在我沒有看到的URL中(我已經嘗試過'[url stringByRemovingPercentEncoding]'。 – Alex