URL エンコーダー & デコーダー(パーセントエンコード)
URLの特殊文字をパーセントエンコーディングで変換、またはデコードします。クエリ文字列、APIリクエスト、安全なリンク作成に必須です。
この変換はブラウザ内だけで実行され、サーバーへはアップロードされません。
空白は %20 になります(+ ではありません)。既定はクエリ値向けのコンポーネントモードで、フル URI は予約文字を残します。
- 入力0
- 出力0
- オプションコンポーネント (encodeURIComponent)
入力
出力
このツールについて
URL のパーセントエンコード/デコードを行います。予約文字・空白・Unicode をクエリ、パス、リダイレクト、API パラメータで安全に扱えます。
コンポーネント(encodeURIComponent、既定)は単一値向け、フル URI(encodeURI)は :, /, ?, & を残します。入力すると結果がライブ更新され、変換はブラウザ内だけです。
パーセントエンコードは暗号化ではありません。
よくある用途
- 空白や
&、=を含むクエリ値のエンコード ?redirect=に入れる入れ子 URL の準備・確認- パーセントエンコードされたログや API エラーを読める文字列へ戻す
使い方
- Encode / Decode を選びます。入力で結果が更新されます。
- クエリ/パス値ならフル URI をオフ(コンポーネント)。URL 全体のときだけオンにします。
- テキストまたはエンコード文字列を貼ります。Sample で両モードを比較できます。
- 出力をコピーします。失敗時は
%ZZ、末尾の%、切り捨てられた UTF-8 を確認します。
encodeURI vs encodeURIComponent
| 入力 | コンポーネント (encodeURIComponent) | フル URI (encodeURI) |
|---|---|---|
a b&c=1 | a%20b%26c%3D1 | a%20b&c=1 |
https://ex.com/a?b=1 | https%3A%2F%2Fex.com%2Fa%3Fb%3D1 | https://ex.com/a?b=1 |
a+b=c | a%2Bb%3Dc | a+b=c |
値を埋め込むときはコンポーネント、既に完全な URL ならフル URI を使います。
例
| 入力 / 設定 | 出力 | メモ |
|---|---|---|
hello world → コンポーネント | hello%20world | 空白 → %20 |
a b&c=1 → コンポーネント | a%20b%26c%3D1 | 単一値向けに &・= をエンコード |
a b&c=1 → フル URI | a%20b&c=1 | 予約記号は残し、空白は %20 |
hello+world → コンポーネント復号 | hello+world | + は文字そのもの(フォームの空白規則とは別) |
実務での落とし穴
- リダイレクト用の完全 URL をコンポーネントでエンコードすると
/や?まで%2F/%3Fになります。 - フォーム(
application/x-www-form-urlencoded)は+を空白とみなしますが、decodeURIComponentはしません。URL 部品には%20を使ってください。 - エンコードはアクセス制御ではありません。クエリ内の秘密はログや Referer に残ることがあります。
参考資料
最終更新: 2026-07-26
よくある質問
- encodeURI と encodeURIComponent の違いは?
- コンポーネントモードは encodeURIComponent で &, =, ?, / などもエンコードします。フル URI モードは encodeURI で URL の区切りを残しつつ、危険な文字だけをエスケープします。
- 空白が + ではなく %20 になるのはなぜ?
- 本ツールはパーセントエンコード(encodeURIComponent)に従います。空白を + にするのは application/x-www-form-urlencoded のフォーム規則です。文字としての + はコンポーネントモードで %2B になります。
- 日本語や絵文字も扱えますか?
- はい。UTF-8 バイト列としてパーセントエンコードされるため、ひらがな・漢字・絵文字も往復できます。
- データはサーバーに送られますか?
- いいえ。変換はブラウザ内だけで実行されます。