URLエンコード・デコード

文字列を Web アドレスに入れられる形に変換するか、エンコードされたリンクを解読して、その文字列とクエリのパラメータを読みます。貼り付けた内容がブラウザの外に出ることはありません。

無料 ブラウザで動作 2026年11月10日火曜日確認済み

エンコードする文字列、または戻すエンコード済みの文字列やリンクです。

操作
範囲

クエリの値やパスの一部には、1つの値を使います。: / ? & = の文字を残すには、URL全体を使います。

HTML フォームが書いたクエリ文字列にチェックを入れます。+ は空白として読まれ、空白は + と書かれます。

結果

結果
クエリのパラメータ

このツールはブラウザ内で動作します。入力した内容が当社に送信されることはありません。

使い方

  1. テキストまたは URLに文字列またはリンクを貼り付けます。
  2. 操作でエンコードかデコードを選びます。
  3. 検索語のような1つの値なら、範囲は1つの値のままにします。リンク全体なら、URL全体を選びます。
  4. 結果を読みます。テキストがクエリを持つリンクなら、クエリのパラメータの表も読みます。

パーセントエンコードの働き

Web アドレスに使えるのは、限られた文字だけです。それ以外の文字は、UTF-8の形の各バイトについて、% 記号と16進数の2桁で書かれます。例えば、「あ」は UTF-8で3バイトの E3 81 82なので %E3%81%82になり、空白は %20になります。規則は RFC 3986の2.1節にあります。

あ  →  UTF-8バイト E3 81 82  →  %E3%81%82
  • 1つの値で符号化すると、英字の A から Z、a から z、数字の0から9、そして - _ . 「!」 ~ * ' ( ) はそのまま残ります。
  • デコードでは、有効な %XX のすべてをバイトに戻し、そのバイトを、形作る文字に戻します。

1つの値か、URL全体か

1つの値は区切り文字も符号化します(: / ? # & = と +)。そのため、クエリの値がアドレスの構造を壊すことはありません。URL全体は、それらの区切り文字をそのまま残すため、リンクの形が保たれます。URL全体をデコードするときは、%2F のように区切り文字を表すエスケープは、エスケープされたまま残るため、リンクは同じ意味を保ちます。

フォームの符号化と + 記号

HTML フォームは、空白を + で、プラス記号を %2B で書きます。そのため、フォームが書いたクエリ文字列の + は、空白を意味します。フォームの符号化の設定は、その規則を読み書きします。オフのときは、RFC 3986のとおり、+ はプラス記号のままです。

デコードが拒否するもの

  • 2桁の16進数が続かない % 記号。例えば %E3%81%A の末尾です。
  • 正しい UTF-8にならないエスケープ。例えば1バイトだけの %FF です。
  • 壊れた文字。例えば絵文字の半分で、エンコードできません。

例:検索リンク

値「東京 & 大阪?」を1つの値でエンコードすると、%E6%9D%B1%E4%BA%AC%20%26%20%E5%A4%A7%E9%98%AA%3F になります。空白、アンパサンド、3バイトずつの漢字、疑問符は、すべてエスケープされます。

https://example.com/検索?q=%E6%9D%B1%E4%BA%AC+%E3%82%AB%E3%83%95%E3%82%A7&page=2を、URL全体とフォームの符号化にチェックを入れてデコードすると、https://example.com/検索?q=東京 カフェ&page=2になります。クエリには2つのパラメータがあり、q は「東京 カフェ」、page は2です。

入力 結果
東京 & 大阪?(1つの値、エンコード) %E6%9D%B1%E4%BA%AC%20%26%20%E5%A4%A7%E9%98%AA%3F
https://example.com/検索?q=%E6%9D%B1%E4%BA%AC+%E3%82%AB%E3%83%95%E3%82%A7&page=2(デコード) https://example.com/検索?q=東京 カフェ&page=2

よくある質問

encodeURI と encodeURIComponent の違いは何ですか?

encodeURIComponent は、すべての区切り文字をエスケープするため、クエリ文字列の1つの値に向いています。encodeURI は、: / ? # & = のような URL の構造を与える文字を残すため、リンク全体に向いています。1つの値は前者、URL全体は後者に当たります。

空白が、ある場所では %20で、別の場所では + になるのはなぜですか?

%20は空白の標準的なエスケープで、URL のどこでも有効です。+ が空白を意味するのは、HTML フォームが書いたクエリ文字列のフォームの符号化の中だけです。リンクがフォームから来た場合は、フォームの符号化にチェックを入れてください。

%E3%81%A が拒否されるのはなぜですか?

%E3は3バイトの文字の始まりですが、文字列が %A の後で終わり、エスケープが完成していないためです。% 記号ごとに16進数の2桁が必要で、各バイトは完全な UTF-8の文字に属していなければなりません。

リンクはサーバーに送られますか?

いいえ。エンコードとデコードは、お使いのブラウザが行います。そのため、トークンや個人データを含むリンクも、お使いの機器の中にとどまります。

デコードしたパラメータに、プラス記号が残るのはなぜですか?

フォームの符号化がオフのとき、+ は RFC 3986の定義どおり、プラス記号のままです。多くの Web フォームは空白を + で書くため、そのようなリンクをフォームの意図どおりに読むには、その設定をオンにしてください。

出典

数値と文章の最終確認日:2026年11月10日火曜日。

当サイトの運営に必要なCookieを使用します。お客様の同意があれば、Googleは広告用Cookieを使い、パーソナライズ広告を表示します。拒否された場合も広告は表示されますが、パーソナライズはされません。