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 です。
このツールの使い方
テキストかエンコード済み文字列を貼り付ける
入力 に、エンコードしたいテキストか、デコードしたいパーセントエンコード文字列を入力します。
モードと文字セットを選ぶ
モード で、単一の値なら コンポーネント (encodeURIComponent風)、アドレス全体なら URI (encodeURI風)、フォームの本文なら フォーム (application/x-www-form-urlencoded) を選びます。サーバーが別の文字コードを求めない限り、テキスト文字セット は UTF-8 のままにします。
エンコードまたはデコードする
エンコード でパーセントエンコードし、デコード でテキストに戻します。不正な
%シーケンスや文字セット外の文字はエラーとして表示されます。結果をコピーする
コピー で出力をクリップボードに入れます。入れ替え は出力を入力欄に戻すので、もう一段デコードしたいときに使えます。
ヒントとベストプラクティス
- クエリの値はコンポーネント モードで 1 つずつエンコードし、そのあと
&と=でつなぎます。URL 全体をコンポーネント モードでエンコードすると://までエスケープされ、リンクが壊れます。 - URI モードは
&、=、#をエスケープしません。パラメーター値にこれらが含まれる場合は、その値をコンポーネント モードでエンコードしてください。 +がスペースを意味するのはフォームデータだけです。フォーム モード以外では文字どおりのプラス記号としてデコードされます。%2520のように二重にエンコードされたテキストは、1 回目で%20になります。入れ替え を押してもう一度 デコード すると次の層を外せます。- サーバーが期待する文字セットを使ってください。
%E9は ISO-8859-1 ではéになりますが、UTF-8 では単独の%E9は不正なテキストとして報告されます。