URLエンコード/デコード
URL・クエリ文字列をパーセントエンコード・デコード。日本語や記号を含むURLの変換に。ブラウザ完結。
形式
処理はブラウザ内で完結し、入力内容は外部に送信されません。
このツールの使い方
- URLまたはクエリ文字列を入力する
- 「URLエンコード」または「URLデコード」を押す
- クエリの値に使う場合は「全記号」、URL全体を扱う場合は「URL構造は保持」を選ぶ
- 結果をコピーする
パーセントエンコードとは
URLで使える文字は英数字と一部の記号に限られます。日本語・スペース・& などをそのままURLに入れると、 区切り記号と誤解されたり壊れたりします。そこで、使えない文字をバイトに分解し、各バイトを %XX(16進数)で表すのがパーセントエンコードです。
あ → UTF-8で E3 81 82 → %E3%81%82
(半角スペース) → %20 / & → %26
(半角スペース) → %20 / & → %26
encodeURIComponent と encodeURI の違い(最重要)
JavaScriptには2つの関数があり、取り違えるとURLが壊れます。違いは「URLの区切り記号もエンコードするか」です。
| 関数(本ツール) | / ? : @ & = を | 使う場面 |
|---|---|---|
| encodeURIComponent(全記号) | エンコードする | クエリの「値」1つずつ。リダイレクト先URLを値に入れるとき |
| encodeURI(URL構造は保持) | 残す | URL全体をまとめて整えるとき |
鉄則:「値」は encodeURIComponent(全記号)。例えば ?redirect= の後に別のURLを入れるとき、 構造保持で処理するとその中の ? や & が区切りと誤解され、パラメータが壊れます。
つまずきやすいポイント
- ・スペースは
%20か+か:URLパス・クエリの標準は%20。ただしapplication/x-www-form-urlencoded(フォーム送信)では+がスペースを表します。デコード時は文脈に注意。 - ・二重エンコード:すでにエンコード済みの文字列を再度エンコードすると
%自体が%25になり、%2520のように壊れます。エンコードは1回だけ。 - ・予約文字と非予約文字:
- _ . ~はエンコード不要(非予約文字)。それ以外の記号は用途に応じてエンコードします。
よくある用途
- ・日本語や記号を含む検索キーワードをURLに埋め込む
- ・受け取ったURLの
%エンコードを元に戻して内容を確認する - ・OAuthのリダイレクトURLやUTMパラメータを、値として安全にエンコードする
- ・ログやWebサーバーの記録に残ったエンコード済みURLを読み解く
関連ツール
広告