5

我从服务器获取 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.

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

谢谢

4

4 回答 4

7

%2520只是一个双重编码的空间。编码一次就得到%20,编码两次就得到%2520。这不是“非标准”,只是编码不佳。从理论上讲,没有理由不能只%2520用空格替换,但据我所知,服务器端代码需要编码字符串。

于 2012-07-09T05:55:36.760 回答
2

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

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

于 2012-07-10T12:26:09.990 回答
1

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

于 2012-07-09T06:01:37.690 回答
0

为避免多重编码,请先删除任何编码

   _pdfUrl = [ _pdfUrl stringByRemovingPercentEncoding];        
   _pdfUrl = [_pdfUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2017-01-20T14:56:36.163 回答