URL エンコード・デコード・解析
値、URL 全体、フォームデータをパーセントエンコード・デコードし、URL を構成要素とクエリパラメーターに分解して表示します。
URL の構成要素
| 要素 | 値 | コピー |
|---|
| パラメーター | 値 | コピー |
|---|
ツールをここにピン留めできます。このブラウザに保存されます。
ツールをピン留めすると、そのステッカーがここに並びます。
値、URL 全体、フォームデータをパーセントエンコード・デコードし、URL を構成要素とクエリパラメーターに分解して表示します。
URL の構成要素
| 要素 | 値 | コピー |
|---|
| パラメーター | 値 | コピー |
|---|
URL に使える ASCII 文字は限られており、その一部には役割があります。? はクエリの開始、& はパラメーターの区切り、# はフラグメントの開始を表します。それ以外の文字や、予約文字を単なるデータとして使う場合は、その文字のバイトごとにパーセント記号と 16 進数 2 桁で書きます。スペースは %20 になり、UTF-8 で 2 バイトになる é は %C3%A9 になります。規則は RFC 3986 に定められています。
デコードはこの逆の処理です。パーセント記号の後に 16 進数 2 桁が続かない場合や、エスケープされたバイト列が有効な UTF-8 でない場合は失敗します。このツールは、問題のシーケンスとその位置を示します。
コンポーネントは、URL の一部分に使います。クエリの値 1 つ、パスのセグメント 1 つ、パラメーターとして渡すリダイレクト先の URL などです。/、?、&、= もエスケープするため、値が URL の構造と取り違えられることはありません。
URL 全体は、スペースと非 ASCII 文字を直すだけでよい完全なアドレスに使います。構造を作る文字には手を付けないため、そうした文字を含む値を保護することはできません。% もエスケープするので、エンコード済みの URL に使うと二重にエンコードされます。また、ホストの IPv6 アドレスを囲む角かっこもエスケープします。デコード時、このモードは %2F や %26 など、構造を作る文字のエスケープをそのまま残します。
フォームは、ブラウザが HTML フォームを送信するときにクエリ文字列やリクエストボディで使う application/x-www-form-urlencoded 形式で、スペースを + と書きます。デコード時に + をスペースとして読むのは、このモードだけです。
入力が絶対 URL であれば入力を、そうでなく出力が絶対 URL であれば出力を、ブラウザ組み込みの URL パーサーで読み取ります。リンクや fetch を処理するのと同じパーサーです。表には、スキーム、認証情報、ホスト、ポート、パス、フラグメントと、キーと値をデコードしたすべてのクエリパラメーターが表示されます。パーサーは読み取った内容を正規化します。たとえば Web の URL では、スキームとホストを小文字にし、パス内の . と .. のセグメントを解決し、スペースなどの文字をパーセントエンコードするため、各要素が入力した内容と少し異なることがあります。http や https の URL に含まれる国際化ドメイン名は、パーサーが保持しているとおり ASCII(Punycode)形式で表示されます。
URL にポートが書かれておらず、そのスキームのデフォルトをツールが知っている場合は、そのデフォルトを表示します。たとえば https なら 443 です。
encodeURI は URL 全体に使うためのもので、: / ? # & = などの文字はそのまま残します。encodeURIComponent は URL 内の値 1 つに使うためのもので、これらの文字もエスケープします。クエリの値には encodeURIComponent を使ってください。そうしないと、値に含まれる & や = によってクエリ文字列が壊れます。
%20 は URL のどこでも有効です。+ がスペースを意味するのは、application/x-www-form-urlencoded のデータ、つまり HTML フォームがクエリ文字列やリクエストボディでフィールドを送るときの形式の中だけです。パスの中の + は、文字どおりのプラス記号です。
パーセント記号は常にエスケープの始まりなので、記号そのものは %25 と書く必要があります。「100% free」のようなテキストは、パーセント記号の後に 16 進数 2 桁が続かないため、パーセントエンコードされた入力としては無効です。
いいえ。エンコード、デコード、解析はすべてブラウザのタブ内の JavaScript で行われます。このツールが入力した内容を含むネットワークリクエストを送ることはありません。
専用のウィンドウで開き、オフラインでも使えます。
インストールするには、共有ボタンをタップして「ホーム画面に追加」を選びます。