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

URL やクエリ文字列をコンポーネント・URI・フォームの各モードでパーセントエンコード/デコード。UTF-8・UTF-16・Latin-1 に対応し、ブラウザ内で処理。

入力内容とファイルはブラウザ内に留まります

URL、クエリ文字列、またはテキストを貼り付けて、パーセントエンコード/デコードします。

エンコードまたはデコードの結果がここに表示されます。

このページの内容

テキストを URL 用にパーセントエンコードし、%XX のシーケンスを読めるテキストに戻します。3 つのモードは JavaScript の encodeURIComponent、encodeURI、HTML フォームのエンコードに対応し、処理は Rust からコンパイルした WebAssembly モジュールがブラウザ内で行います。

詳細な機能

コンポーネント モードは英数字と - _ . ! ~ * ' ( ) 以外をすべてエスケープするため、/、?、&、= もエンコードされます。クエリパラメーターの値 1 つやパスのセグメント 1 つに使います。URI モードは完全なアドレスの構造(: / ? # & = + $ , ; @)を保ち、スペースと URL で決して有効にならない文字だけをエスケープします。フォーム モードは application/x-www-form-urlencoded に従い、スペースを + にして、英数字と - _ . * 以外をエスケープします。デコード時は + をスペースに戻します。

エンコード前に、テキストは選んだ文字セットでバイト列に変換されます。Web の標準は UTF-8 で、ISO-8859-1(Latin-1)、UTF-16LE、UTF-16BE は古いシステム向けです。文字セットで表せない文字は位置とともにエラーになります。デコードは厳密で、% の後には必ず 16 進数 2 桁が必要なため、単独の 100% は黙って通さずエラーとして報告します。ステータス行には出力の文字数とバイト数が表示されます。

実用例

パラメーター値: a b&c=d/e? はコンポーネント モードで a%20b%26c%3Dd%2Fe%3F になります。

URL 全体: https://example.com/my path?q=a b&x=1 は URI モードで https://example.com/my%20path?q=a%20b&x=1 に、コンポーネント モードでは https%3A%2F%2Fexample.com%2Fmy%20path%3Fq%3Da%20b%26x%3D1 になります。

フォームデータ: John Doe & Co. はフォーム モードで John+Doe+%26+Co. になります。a+b%20c をデコードすると、フォーム モードでは a b c、コンポーネント モードでは a+b c です。

文字セット: café は UTF-8 では caf%C3%A9、ISO-8859-1 では caf%E9 です。

このツールの使い方

  1. テキストかエンコード済み文字列を貼り付ける

    入力 に、エンコードしたいテキストか、デコードしたいパーセントエンコード文字列を入力します。

  2. モードと文字セットを選ぶ

    モード で、単一の値なら コンポーネント (encodeURIComponent風)、アドレス全体なら URI (encodeURI風)、フォームの本文なら フォーム (application/x-www-form-urlencoded) を選びます。サーバーが別の文字コードを求めない限り、テキスト文字セット は UTF-8 のままにします。

  3. エンコードまたはデコードする

    エンコード でパーセントエンコードし、デコード でテキストに戻します。不正な % シーケンスや文字セット外の文字はエラーとして表示されます。

  4. 結果をコピーする

    コピー で出力をクリップボードに入れます。入れ替え は出力を入力欄に戻すので、もう一段デコードしたいときに使えます。

ヒントとベストプラクティス

  • クエリの値はコンポーネント モードで 1 つずつエンコードし、そのあと & と = でつなぎます。URL 全体をコンポーネント モードでエンコードすると :// までエスケープされ、リンクが壊れます。
  • URI モードは &、=、# をエスケープしません。パラメーター値にこれらが含まれる場合は、その値をコンポーネント モードでエンコードしてください。
  • + がスペースを意味するのはフォームデータだけです。フォーム モード以外では文字どおりのプラス記号としてデコードされます。
  • %2520 のように二重にエンコードされたテキストは、1 回目で %20 になります。入れ替え を押してもう一度 デコード すると次の層を外せます。
  • サーバーが期待する文字セットを使ってください。%E9 は ISO-8859-1 では é になりますが、UTF-8 では単独の %E9 は不正なテキストとして報告されます。