Web便利ツール

URL エンコード文字列をデコード

パーセントエンコードされた文字列を元のテキストに復元します。アクセスログや受け取った URL の中身を確認するときに便利です。

このツールについて

使い方

  1. 「エンコード」タブ: 日本語や特殊文字を含むテキストを URL で使える形式に変換します
  2. 「デコード」タブ: エンコードされた文字列を元のテキストに戻します

URL エンコーディングとは

URL に直接使用できない文字 (日本語、スペース、一部の記号など) を %XX 形式に変換する仕組みです。パーセントエンコーディングとも呼ばれ、RFC 3986 で規定されています。

よくある質問

Q. URL やテキストを貼り付けてもプライバシーは守られますか?
A. エンコード / デコードの処理はすべてブラウザ内で実行されます。入力した URL や文字列が外部に送信されることはないため、社内向け URL やトークンを含む文字列も安心して変換できます。
Q. 日本語を含む URL はそのまま使えないのですか?
A. ブラウザのアドレスバーは日本語を自動でエンコードして表示することが多いですが、メールやプログラム内で URL を扱う場合は明示的にエンコードしておかないと正しく動作しないことがあります。
Q. URL 全体をエンコードすると :// までエスケープされてしまうのですが?
A. クエリパラメータの「値」のみをエンコードするのが基本です。プロトコルやホスト名はエンコード不要のため、?key= 以降の値部分だけを貼り付けて変換してください。
Q. 「%」を含む文字列をデコードすると失敗するのですが?
A. % は URL エンコードの予約文字です。リテラルの %%25 として表現する必要があります。「%50%」のような不完全な形式はデコードに失敗します。
Q. 1度エンコードした文字列をもう1度エンコードしても大丈夫ですか?
A. 動作はしますが、二重エンコードになります。例えば %20 がさらに %2520 となり、デコード時には二度デコードしないと元の文字列に戻りません。意図しない場合は注意してください。

豆知識

なぜ URL エンコードが必要なのか

URL でエンコードせずにデータとして自由に使える文字は、RFC 3986 で定められた「非予約文字」(英数字と -._~) に限られます。 日本語やスペース、&= などの特殊文字を URL に含めるには、 UTF-8 バイト列に変換した上で各バイトを %XX 形式に置き換える「パーセントエンコーディング」が必要です。

encodeURI と encodeURIComponent の違い

JavaScript には URL エンコード用の関数が2つあります。 encodeURI は URL 全体を対象とし、:/?# などの区切り文字はエンコードしません。 一方 encodeURIComponent はクエリパラメータの値など URL の一部を対象とし、 ほぼすべての特殊文字をエンコードします。 用途を間違えると URL が壊れる原因になります。

「%20」と「+」の違い

スペースの URL エンコードには %20+ の2種類があります。 %20 は RFC 3986 に準拠した標準形式で、URL のパス部分に使用します。 + は HTML フォームの application/x-www-form-urlencoded 形式で使用される歴史的な表記です。 多くの Web サーバーはどちらも受け付けますが、仕様上は使い分ける必要があります。

参考リンク

このツールの更新履歴

  • 機能追加

    URL エンコード: モードごとに見出しと説明文を最適化

    エンコード / デコードのそれぞれで見出しと導入文が切り替わり、目的に合ったページであることがわかりやすくなりました。

  • 新ツール

    URL エンコード/デコードツールを公開