仕組み
許可されたセットの外にある各文字は、パーセント記号とそれに続く 2 桁の 16 進数の UTF-8 バイトとして書き込まれます。 encodeURIComponent は、 A-Z a-z 0-9 - _ を除くすべてをエスケープします。 ! ~ * ( ) 一方、encodeURI は予約された URL 句読点をそのまま保持します。
- クエリ値にはコンポーネント モードを使用します。フル URL モードでは : / ? が保持されます。 & = 無傷。
なぜそれが重要なのか
クエリ文字列は微妙な方法で分割されます。& を含む検索語は新しいパラメータを黙って作成し、ファイル名内のスラッシュはパスを変更し、スペースは予期しない場所で終了します。正しくエンコードするかどうかが、動作中のリンクとサポート チケットの違いです。
うまくいった例
encodeURIComponent("a b&c") は a%20b%26c を返しますが、encodeURI は文字列を URL 全体として扱うため & を保持します。間違ったものを選択すると、クエリが分割される場所が変わります。
よくある間違い
- 単一のクエリ値に完全な URL エンコードを使用する。
- decodeURIComponent が + をスペースに変換することを期待します。それがフォームエンコーディングです。
- 2 回エンコードして、サーバーが %2520 を認識するのはなぜだろうか。
実践的なヒント
各クエリ値を個別にエンコードし、エンコードされた部分から URL を構築します。値がすでにエンコードされているように見える場合は、それを一度デコードし、デコードされた形式から再エンコードします。繰り返しのエンコードは、%25 スタイルのバグの最も一般的な原因です。
使い方
- ツールを開きます。すべてはブラウザのタブで実行されます。
- 入力を貼り付けるか入力し、必要なアクションを選択します。
- 結果を確認し、ワンクリックでコピーします。
よくある質問
コンポーネントと完全な URL を使用するのはどのような場合ですか?
単一のクエリ値のコンポーネント。/? & = はエスケープする必要があります。完全な URL では、これらの区切り文字はそのまま維持されます。
スペースが %20 になるのはなぜですか?
パーセントエンコーディングはスペースを %20 として表します。 + フォームは、URL ではなく HTML フォーム エンコーディングに属します。
デコードすると + 記号が残るのはなぜですか?
decodeURIComponent は + をスペースとして扱いません。値がフォーム送信から取得された場合は、最初に + をスペースに置き換えます。
このツールは本当に無料ですか?
はい。アカウント、ペイウォール、使用制限はありません。 Tools App は、その背後にあるスタジオである aumenso によって資金提供されています。
入力した内容はアップロードされますか?
いいえ。ツールはブラウザのタブで実行されます。入力した内容は当社に送信されたり保存されたりすることはありません。