URLエンコードとは
URLに使える文字は限られたASCII文字だけです。スペース・アンパサンド・非ASCII文字はパーセントエンコードが必要で、パーセント記号と2桁の16進数に置き換えられます。例えばスペースは%20、äは%C3%A4になります。
このツールは文字・数字および- _ . ! ~ * ( )以外のすべてをエンコードするencodeURIComponentを使います。URL全体ではなくクエリパラメータ値やパスセグメントをエンコードする際に適切な関数です。
テキストまたはURLコンポーネントを貼り付け、エンコードまたはデコードを選ぶと結果がすぐに出ます。
URLに使える文字は限られたASCII文字だけです。スペース・アンパサンド・非ASCII文字はパーセントエンコードが必要で、パーセント記号と2桁の16進数に置き換えられます。例えばスペースは%20、äは%C3%A4になります。
このツールは文字・数字および- _ . ! ~ * ( )以外のすべてをエンコードするencodeURIComponentを使います。URL全体ではなくクエリパラメータ値やパスセグメントをエンコードする際に適切な関数です。
URLで使うテキストをパーセントエンコードするには、非予約文字(英数字・- _ . ! ~ * ' ( ))以外のすべての文字を、UTF-8バイト値を表すパーセント記号と16進数2桁に置き換えます。例: 「hello world」は「hello%20world」、「café」は「caf%C3%A9」になります。
| テキスト | エンコード結果 |
|---|---|
| hello world | hello%20world |
| a=b&c=d | a%3Db%26c%3Dd |
| café | caf%C3%A9 |
| 100% off! | 100%25%20off! |
| user@example.com | user%40example.com |
これらの文字は、英数字や- _ .と共にURIコンポーネント内でそのまま使っても安全で特別な意味を持たないと定義されているため、JavaScriptのencodeURIComponentはそのまま残します。encodeURIのような関数はコンポーネント1つではなくURL全体をエンコードするためのものなので、より広い予約文字の集合を別に扱います。
クエリパラメータの値のようなコンポーネント1つだけをエンコードするときは、&や=のようなURL構造と誤解されうる文字をエスケープする必要があります。URL全体をエンコードするときは:, /, ?, &のような構造文字をそのまま残さないとURLが正しくパースされないため、encodeURIComponentとencodeURIは異なる動作をします。
%20はURLパスやencodeURIComponentの出力で使われる一般的な空白のパーセントエンコードです。+で空白を表す方式は、HTMLフォーム送信やクエリ文字列で使われるapplication/x-www-form-urlencoded形式特有の慣習であり、一般的なURLエンコードのルールではありません。
%の後に有効な16進数2桁が続かない場合や、デコードされたバイトが有効なUTF-8を形成しない場合にエラーになります。例えば%E2%9のように最後のバイトが欠けた不完全なパーセントシーケンスを貼り付けると失敗します。入力が完全で正しくパーセントエンコードされているか確認してください。
このツールはJavaScriptのencodeURIComponent・decodeURIComponentでテキスト値を1つエンコード・デコードし、RFC 3986の非予約文字基準に従います。URL全体の構造(スキーム・ホスト・パス・クエリ)を要素ごとにパース・検証することはしません。
Sources: RFC 3986 - 統一資源識別子(URI)汎用構文
最終更新: 2026-08-17