2012-07-09 15 views
5

サーバからURLを取得していて、webviewでURLをロードしようとしています。問題は、私が取得しようとしているURLに非標準文字が含まれていることです。 URLは次のとおりです。obj cのURLから%2520と他の非標準文字を削除する

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やURLから他の非標準文字のような文字を削除する必要があります。誰でもこのエンコーディングを削除する考えがあります。
すべてのヘルプは

+0

参照@Kolinkの答えを任意のエンコーディングを削除し、そして、彼らはあなたを送っているゴミURLを修正するために、サーバーのチームを取得します。あなたは、URLの通常部分の '/'の代わりに '%2F'が表示されているときに、URLが正しくエンコードされていないことを知っています。 –

答えて

7

%2520は、単に二重エンコードされた空間である

おかげでいただければ幸いです。一度エンコードすると%20が得られ、2度エンコードすると%2520になります。それは "非標準"ではなく、コード化されていません。理論的には、%2520をスペースで置き換えることはできませんが、サーバ側のコードはで、ダブルコード化された文字列が必要です。

1

urlencode()が多すぎるか、urldecode()が少なすぎますが、URLサーバー側のコードを処理しているようです。

1

答えを見つけました。iOSの組み込み関数を使用してエンコードを削除しています。 abc = [def stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

と私はwebviewでabcをロードしています。うまくいきます。 お返事いただきありがとうございます。

0

、複数のエンコーディングを避ける最初

_pdfUrl = [ _pdfUrl stringByRemovingPercentEncoding];   
    _pdfUrl = [_pdfUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
関連する問題