在obj c中从URL中删除%2520和其他非标准字符

时间:2012-07-09 05:50:43

标签: php ios url uiwebview

我从服务器获取URL并尝试在webview中加载URL。问题是我得到的网址包含非标准字符。网址是:

https//p-r3.test.abc.com:443%2Ftablet%2Fjsp%2Fgift%2Fipad%2Fgifter%2FgitGiftList.jsp%3FregId%3D74500002%26filterBy%3DviewAll%26pageId%3DourGifty%26sort%3Dcategory%26groupBy%3Dcategory%26view%3Dlist%26categoryId%3D%26addCat%3Dcat100540004&title=re%20-&imgurl=https%3A%2F%2Fm-r3-testy.tr.com%3A443%2Ftablet%2Fimages%2Ft_Full.jpg%3Fwid%3D300%26hei%3D300.

我需要从网址中删除%2520%2F%3D和其他非标准字符等字符。任何人都有理由删除此编码 任何帮助将不胜感激

由于

4 个答案:

答案 0 :(得分:7)

%2520只是一个双重编码的空间。对其进行编码,然后获得%20,对其进行两次编码,然后获得%2520。它不是“非标准的”,它的编码很差。从理论上讲,没有理由不能用空格替换%2520,但据我所知,服务器端代码期待双重编码的字符串。

答案 1 :(得分:1)

在处理URL服务器端的代码中,您似乎有一个urlencode()太多,或者urldecode()太少了。

答案 2 :(得分:1)

找到答案。我正在使用iOS的内置功能删除编码。abc = [def stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

我在webview中加载abc。它工作正常。 谢谢大家的回复。

答案 3 :(得分:0)

要避免多重编码,请先删除所有编码

   _pdfUrl = [ _pdfUrl stringByRemovingPercentEncoding];        
   _pdfUrl = [_pdfUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];