tooliv

URLエンコード

URLエンコード・デコード

入力

結果

URLエンコードって何のためにあるの?

URLに使えるのは英数字と一部の記号だけ。日本語やスペース、特殊文字はそのままURLに入れるとエラーの原因になります。そこで「%XX」という形式に変換するのがURLエンコード(パーセントエンコーディング)です。

encodeURIComponentとencodeURIの違い

JavaScriptには似た名前の関数が2つあります。encodeURIComponent()はパラメータ値のエンコードに使い、スラッシュや?も変換します。encodeURI()はURL全体に使い、URLの構造文字はそのまま残します。使い分けが重要です。

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

URLのルール(RFC 3986)では、使える文字は英数字と一部の記号(-._~)だけと決まっています。日本語の検索ワードやスペースがURLに入ると、サーバーが正しく読み取れないことがあります。特に&や=はクエリパラメータの区切りに使われるため、データの中にこれらが含まれるなら必ずエンコードしないとバグの原因になりますよ。

どんな文字がエンコードされるの?

スペースは%20(またはフォームでは+)に、&は%26、=は%3D、?は%3Fに変換されます。日本語の「東京」はUTF-8だと%E6%9D%B1%E4%BA%ACのように、1文字が複数の%XXになるんですね。スラッシュ(/)はURLのパス区切りに使うので、パラメータの値の中に含まれるときだけエンコードすればOKです。

開発者向け:URLエンコードで気をつけること

URL全体をエンコードするのではなく、クエリパラメータの値だけをエンコードしてください。JavaScriptならencodeURIComponent()、Pythonならurllib.parse.quote()が定番です。ありがちなミスは二重エンコーディング。すでにエンコード済みの文字列をもう一度エンコードすると%25XXのような文字化けが発生します。APIリクエストでは、パラメータ値に特殊文字が入る可能性を常に考えて、エンコードを習慣づけるのが安全ですよ。

よくある質問

URLエンコーディングはなぜ必要ですか?

URL内の特殊文字(スペース、&、=など)は正しく解釈されるためにエンコーディングが必要です。

パーセントエンコーディングとは?

文字を%XX形式に変換することです。XXはその文字の16進数値です。

URL全体をエンコードすべきですか?

いいえ、URL構造ではなくパラメータ値のみをエンコードしてください。

関連ツール