URL エンコーダー/デコーダー

テキストを入力・貼り付けると URL エンコードがすぐに表示されます。リンクのパラメーターを表として読むこともできます。ボタン不要、アップロードなし。

使い方

  1. エンコード、デコード、パラメーターのいずれかを選びます。入力欄はそのまま保持されるため、同じテキストを入力し直さずに両方の視点で確認できます。
  2. エンコード:テキストを入力または貼り付けると、パーセントエンコードされた値がすぐに表示されます。「コンポーネント」(既定)は 1 つのクエリ値やパスセグメントの内部に置く形式で、「URL 全体」は : / ? & = # を保持してアドレス全体をそのまま残します。
  3. デコード:%E4%BD%A0… を貼り付けると元の文字を読めます。フォーム由来の値なら「フォーム(+)」を、二重エンコードされたリンクなら「繰り返しデコード」をオンにします(最大 10 層、層数が表示されます)。
  4. パラメーター:URL 全体またはクエリ文字列を貼り付けると、すべてのキーと値がデコード済みで表示され、重複も含まれます。1 つの値をコピーするか、表全体を key: value の行としてコピーできます。

例

入力

Café & crème?

エンコード結果

Caf%C3%A9%20%26%20cr%C3%A8me%3F

é は UTF-8 で 2 バイトなので、1 文字が 2 つのエスケープ(%C3%A9)になります。スペースは %20、& は %26、? は %3F です。デコードに切り替えて結果を貼り付けると元に戻ります。パラメーターモードでは「?q=a+b&lang=en」は q = 「a b」(+ はスペースを意味します)、lang = 「en」になります。

ルール・制限・既知の問題

  • UTF-8 のみに対応しています。GBK、Shift_JIS、Latin-1 など一部ツールが用意する文字コードには対応せず、文字コードを推測することもありません。文字化けは、リンクが別の文字コードでエンコードされたことを意味します。
  • エンコードはすでにエンコードされたテキストを検出しません。%E4%BD%A0 は %25E4%25BD%25A0 になります。エスケープを文字に戻すにはデコードを使ってください。
  • デコードは厳格です。16 進数 2 桁が続かない「%」や、有効な UTF-8 でないバイト列は、「�」で置き換えずに位置を添えて報告します。
  • 「フォーム(+)」が変えるのはスペースだけです。エンコード時は %20 が + になり、デコード時は + がスペースになります。リテラルのプラスは %2B です。パラメーターモードでは常に + をスペースとして読み取ります(サーバーがクエリ文字列を読む方法と同じです)。
  • 全角スペース(U+3000、日本語入力でよく使われます)は %20 ではなく %E3%80%80 で、フォーム(+)の影響を受けません。全角数字やアラビア・インド数字はそれぞれのバイトとしてエンコードされ、ASCII 数字に正規化されることはありません。
  • パラメーターモードは読み取り専用です。元の順序とすべての重複キーを保持し、a[b]=c のようなネストしたキーは解析せず、並べ替えも行わず、#fragment はそのまま残します(#?a=b のハッシュルートには対応)。
  • 最大 100,000 文字です。それを超えると切り詰めた結果ではなくエラーを表示します。20,000 文字を超えると、入力が止まってから約 0.6 秒後に結果が更新されます。
  • ファイルのアップロード、履歴、入力を含む共有リンクはありません。すべてブラウザー内で動作し、テキストがページの外に出ることはありません。

値をエンコードしたりリンクを理解した後によく使われるツールです。