URLエンコードとは
URL エンコーディングはパーセント エンコーディングとも呼ばれ、Web アドレス内の安全でない文字をパーセント記号とそれに続くコードで置き換えます。スペースは %20 になり、アンパサンドは %26 になります。これにより、URL を壊さずにテキスト、スペース、アクセント、記号を URL に挿入できます。このツールは、URL で安全に使用できるようにテキストをエンコードし、パーセントでエンコードされたテキストを読み取り可能な形式にデコードします。
なぜ必要なのか
URL には安全に含めることができる文字セットが限られています。スペース、スラッシュ、疑問符、英語以外の文字を含む検索語、パラメータ値、またはパス セグメントを URL に直接入力すると、それらの文字が誤って解釈され、リンクが切断される可能性があります。エンコードにより、サーバーとブラウザが正しくデコードできる安全な表現に変換されます。クエリ文字列、API 呼び出し、またはリンクをプログラムで作成する人は常にこれを必要とします。
エンコードとデコード
エンコーディングは読み取り可能なテキストを取得し、それを URL セーフにし、リンクまたはクエリ パラメーターを構築するときに不可欠です。デコードではその逆が行われ、パーセントでエンコードされた文字列が読み取り可能なテキストに戻されます。これは、誰かから送信された URL を読んだり、API 呼び出しをデバッグしたり、パラメーターに実際に含まれる内容を検査したりするときに役立ちます。このツールは両方を 1 回のクリックで実行し、アクセント記号付き文字と英語以外の文字を UTF-8 を通じて正しく処理します。
よくある状況
クエリにスペースと記号が含まれる検索 URL を構築します。 URL 構造を壊すことなく、アンパサンドまたは等号を含む値をクエリ パラメーターを通じて渡します。エンコードされた長い URL を読んで、それが何を指しているのかを理解します。パラメータをエンコードする必要がある API リクエストを構築します。ブラウザ内で実行されるため、機密データを含む値を安全にエンコードまたはデコードできます。
URLエンコードとは
URL エンコーディングはパーセント エンコーディングとも呼ばれ、URL 内の安全でない文字または予約されている文字をパーセント記号とそれに続く 2 つの 16 進数に置き換えます。スペースは %20 になり、アンパサンドは %26 になります。 RFC 3986 標準により、URL は ASCII 文字の小さなセットに制限されているため、そのセット以外のもの、スペース、アクセント、絵文字、または ? のような予約記号は使用できません。 & = # データとして使用する場合は、URL の構造を壊さずにブラウザからサーバーに移動できるようにエンコードする必要があります。
encodeURI と encodeURIComponent
JavaScript には 2 つのエンコード関数が用意されており、間違ったエンコード関数を選択することはよくあるバグです。 encodeURIComponent は予約されているものすべてをエンコードし、クエリ文字列、検索語、パラメータ値、リダイレクト ターゲットに入力する個々の値に必要なものです。 encodeURI は / ? のような URL 構造文字を保持します。 & = は、機能を維持しながら URL 全体をエンコードすることを目的としています。経験則: URL 内の値には encodeURIComponent を使用し、URL 全体に対してのみ encodeURI を使用します。このツールはコンポーネントをエンコードします。これはほとんどの場合必要なものです。
よくある URL エンコードの間違い
2 つのバグが優勢です。すでにエンコードされている文字列をエンコードすると二重エンコードが発生し、%20 が %2520 になり、リンクが切断されます。エンコード済みの URL は決してエンコードせず、生のテキストのみをエンコードし、不明な場合は最初にデコードしてください。もう 1 つはプラス記号の曖昧さです。クエリ文字列では + は (HTML フォーム エンコーディングによる) スペースを意味しますが、URL パスではリテラルのプラスです。疑わしい場合は、スペースとして %20 を使用してください。これはどこでも明確です。また、値内のエンコードされていない & はパラメータ区切り文字として誤って読み取られ、データが分割されることにも注意してください。