http://www.w3schools.com/tags/ref_urlencode.aspなぜURLエンコード、または
をエンコードする文字のURLは、多くの場合、ASCII文字セット以外の文字が含まれているので、URLが有効なASCII形式に変換する を持っています。
しかし、スペース、/、%はASCII文字セットの一部です。なぜそれらを最初にエンコードするのですか?どの文字をエンコードする必要がありますか?
http://www.w3schools.com/tags/ref_urlencode.aspなぜURLエンコード、または
をエンコードする文字のURLは、多くの場合、ASCII文字セット以外の文字が含まれているので、URLが有効なASCII形式に変換する を持っています。
しかし、スペース、/、%はASCII文字セットの一部です。なぜそれらを最初にエンコードするのですか?どの文字をエンコードする必要がありますか?
前述のとおり、スペースはURLでは無効です。ほとんどのブラウザは自動的にそれらのコードを記述します。しかし...
リンク先のページには、「試してください」セクションに「Günter」という単語が含まれています。 "Günter"という単語がクエリ文字列のパラメータとして送信された場合、それは機能しません。 "ü"は標準のASCII文字セットではないためです。
非ASCII文字の可能性がある場合に使用することを意図しています。たとえば、データベースのデータを使用してハイパーリンクを作成する場合などです。コードがユーザープロファイルページへのリンクを作成するとします。エンコードされていないが、私のは次のようになります。
<a href="profile/?username=David Stratton">Your profile</a>
ギュンターさんは
<a href="profile/?username=Günter">Your profile</a>
鉱山は、ほとんどのブラウザが処理できることだろうが。ギュンターの、おそらくない。
エンコードされ、これらは有効なURLです
<a href="profile/?username=David%20Stratton">Your profile</a>
と
<a href="profile/?username=G%FCnter">Your profile</a>
なります。
(最もよく設計されたシステムは、そのようなパラメータには、ユーザー名を渡すことはないという事実を許してください。これは、コンセプトを明確にするだけのサンプルだった。)
*「それはうまくいかない」とは言わないでください*。何かがうまくいかない場合は、少なくともそれが何をするかを説明してください。 – yckart
ここに行く:
When are you supposed to use escape instead of encodeURI/encodeURIComponent?
をこれは私が見つけたと私に役立った最良の説明です。
有効なURLを確保するために、スペースなどの特定の文字をエスケープする必要があります。一度GETパラメータを生成すると、これがたくさん出てくるはずです。
URL内の文字をエンコードする必要があります一部の文字はURL specificationで特別な意味を持つため、一部の文字は使用できず、一部の文字はすべての文字セットで表現できません。
少しのガイダンスについては、this introを参照してください。
'/'は、URLのコンポーネントセパレータとして使用するために予約され、 '%'はエスケープ文字として使用されます。
+1スペック/リンク:-) – The111
たとえば、UTF-8文字、または異なる文字セットの任意の文字。 ASCIIはちょうど文字の最小範囲です。 – Halcyon
私はshureではありませんが、私はすべての文字が異なる意味(例えば&とスペース)を持つことができるコード化されるべきだと思います。 w3schools.comは使用しないでください。w3cとは関係がなく、間違っていることがよくあります。 –