URLエンコードとデコード
入力しながら、その場で両方向に変換します。
例を読み込むと入力と設定が一時的に変わります。元の内容に戻せます。
0文字
出力
上に貼り付けるか入力すると、ここに結果が表示されます。
ファイルは端末の外に出ません
このツールはすべてブラウザ内で動作します。貼り付けた内容は端末内で処理され、サーバーには送信されないため、トークンや鍵、未公開の文章でも安心して使えます。
使用例
例:「抹茶 ラテ&ほうじ茶」で検索するリンクを作る(値だけをエンコードする)
お店のブログから、サイト内検索の結果ページへリンクを張ります。URLは https://example.com/search?q= の後ろに検索語を付ける形で、検索語は「抹茶 ラテ&ほうじ茶」。空白と & が入っているのがポイントです。
- 方向は「エンコード」、「URL全体として扱う」はチェックなしで、検索語だけを貼り付けます。10文字が78文字になります。
- 空白は %20、& は %26 に変わりました。これを ?q= の後ろにつなげればリンクの完成です。
- 失敗例:URL全体を貼って「URL全体として扱う」にチェックすると、& がそのまま残ります。サーバーは & でパラメータを区切るので、検索語は「抹茶 ラテ」で切れ、「ほうじ茶」は別のパラメータとして扱われます。
- 届いたリンクを読むときは「デコード」。チェックなしなら「抹茶 ラテ&ほうじ茶」まで戻り、チェックありでは %26 が残って「抹茶 ラテ%26ほうじ茶」と表示されます。
| 入力 | 設定 | 結果 |
|---|---|---|
| 抹茶 ラテ&ほうじ茶 | エンコード・チェックなし | %E6%8A%B9%E8%8C%B6%20%E3%83%A9%E3%83%86%26%E3%81%BB%E3%81%86%E3%81%98%E8%8C%B6 |
| https://example.com/search?q=抹茶 ラテ&ほうじ茶 | エンコード・チェックあり | https://example.com/search?q=%E6%8A%B9%E8%8C%B6%20%E3%83%A9%E3%83%86&%E3%81%BB%E3%81%86%E3%81%98%E8%8C%B6(& が残る) |
| 秋の新作 | エンコード・チェックなし | %E7%A7%8B%E3%81%AE%E6%96%B0%E4%BD%9C |
正しいリンクは https://example.com/search?q=%E6%8A%B9%E8%8C%B6%20%E3%83%A9%E3%83%86%26%E3%81%BB%E3%81%86%E3%81%98%E8%8C%B6 です。検索語が最後まで1つの値として届き、検索結果に「抹茶 ラテ&ほうじ茶」と表示されます。
使い方
- 文字列またはURLを貼り付けます。結果はその場で表示されます。
- エンコードかデコードかを選びます。
- URL全体を変換するときは「URL全体として扱う」にチェックを入れます。クエリの値ひとつを変換するときは、チェックを外したままにしてください(この違いが重要です)。
- 結果をコピーします。
よくある質問
- 2つのモードは何が違うのですか?
- URL全体として扱う場合は、URLの構造を作る文字(: / ? # & =)をそのまま残します。https://example.com/a b は https://example.com/a%20b になります。一方、?q= のあとに入れる「値」を変換する場合は、その値に含まれる & や = も必ずエンコードしなければなりません。そうしないとパラメータがそこで終わってしまい、リンクが静かに壊れます。値ひとつを変換するときはチェックを外す、と覚えてください。
- デコードでエラーになりました。
- 文字列の中の % が、16進数2桁で続いていないためです。「50% OFF」のような文章はエンコードされた文字列ではないので、デコードという操作自体が成り立ちません。必要なら先にエンコードしてください。
- 日本語や記号も扱えますか?
- はい。UTF-8のバイト列としてエンコードします(「日本語」は %E6%97%A5%E6%9C%AC%E8%AA%9E)。デコードでも元に戻ります。
- %E3%81%82 のような記号だらけのURLを日本語に戻すには?
- 方向を「デコード」にして貼り付けます。日本語はUTF-8で1文字3バイト、つまり %XX が3つで1文字なので、「秋の新作」は %E7%A7%8B%E3%81%AE%E6%96%B0%E4%BD%9C の36文字になっています。Shift_JISなどUTF-8以外でエンコードされたURLはエラーになり、日本語には戻せません。
- %2520 のように % が増えてしまいました。
- すでにエンコードされた文字列を、もう一度エンコードしたためです。% 自体が %25 になるので、%20 は %2520 になります。エンコードは1回だけにしてください。二重になったものは、デコードを2回かけると元に戻ります。
- 空白が + にならないのはなぜですか?
- + を使うのはHTMLフォーム送信の古い書き方で、URLの書式そのものとは別のものです。クエリではどちらもサーバーに通りますが、ここでは %20 を使います。パスの中でも正しく扱われるのはこちらです。
- URLはどこかに送られますか?
- いいえ。このページの中で変換しています。URLにはセッショントークンや署名付きURL、社内のホスト名が入っていることがあります。