URLエンコードとは?仕組みと使いどころをわかりやすく解説

公開日:2026年7月4日 / カテゴリ:IT知識

Webサイトの長いURLをコピーしたとき、「%E3%81%82」のような不思議な文字列を見たことはありませんか?これは「URLエンコード」(パーセントエンコーディング)と呼ばれる処理の結果です。なぜこのような変換が必要なのか、どんな場面で使われるのかを解説します。

URLエンコードとは

URLに使える文字は限られている

URLに使える文字は、実はかなり限定されています。RFC 3986という国際的な規格で定められた「使用可能な文字」は以下の通りです。

これ以外の文字——日本語はもちろん、スペースや「&」「=」「?」なども——URLにそのまま含めることはできません。そこで、これらの文字を「%XX」という形式に変換するのがURLエンコードです。

変換のルール

URLエンコードでは、文字をUTF-8でバイト列に変換し、各バイトを「%」に続く16進数2桁で表現します。

文字UTF-8バイト列エンコード結果
E3 81 82%E3%81%82
東京E6 9D B1 E4 BA AC%E6%9D%B1%E4%BA%AC
スペース20%20(または+)
&26%26
=3D%3D

たとえば「東京タワー」という文字列をURLエンコードすると、次のようになります。

元の文字列:東京タワー
エンコード後:%E6%9D%B1%E4%BA%AC%E3%82%BF%E3%83%AF%E3%83%BC

URLエンコード・デコードをサッと行うなら

URLエンコードツールを使ってみる →

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

URLの構造を壊さないため

URLには「?」「&」「=」「/」などの記号が特別な意味を持っています。

https://example.com/search?q=東京&category=観光

このURLで「&」はパラメータの区切りを意味します。もし検索キーワード自体に「&」が含まれていたら(例:「AT&T」で検索)、ブラウザはどこまでがキーワードでどこからが次のパラメータか判断できなくなります。「&」を「%26」にエンコードすることで、この問題を防いでいます。

文字化けを防ぐため

日本語のような非ASCII文字は、サーバーやブラウザによって文字コードの解釈が異なる場合があります。URLエンコードによってUTF-8のバイト列に統一することで、どの環境でも同じ文字として解釈されるようになります。

セキュリティのため

ユーザーが入力したテキストをそのままURLに含めると、意図しないコードが実行される「インジェクション攻撃」の原因になります。URLエンコードは、こうした攻撃を防ぐための基本的な対策の一つです。

日常で出会うURLエンコードの場面

Google検索

Googleで「東京 天気」と検索すると、アドレスバーには次のようなURLが表示されます。

https://www.google.com/search?q=%E6%9D%B1%E4%BA%AC+%E5%A4%A9%E6%B0%97

ブラウザのアドレスバーでは日本語のまま表示されることもありますが、URLをコピー&ペーストすると、エンコードされた形式になることがあります。

SNSでのリンク共有

日本語を含むURLをSNSで共有するとき、エンコードされた長いURLになってしまうことがあります。Twitterなどでは文字数を消費するため、短縮URLサービスを使うのが一般的です。

Webフォームの送信

お問い合わせフォームなどでテキストを送信するとき、フォームのデータはURLエンコードされてサーバーに送られます(GET送信の場合、URLの末尾にパラメータとして付加されます)。

URLエンコードとデコードの違い

URLエンコードとデコードは逆の処理です。

メールやチャットで受け取った「%E3%81%82…」のような文字列を元の日本語に戻したいときはデコードを使います。逆に、日本語をURLのパラメータに含めたいときはエンコードを使います。

URLエンコードでよくあるトラブル

二重エンコード

すでにエンコード済みの文字列をもう一度エンコードしてしまうと、「%25E3%2581%2582」のように「%」自体がエンコードされてしまいます。デコードしても元に戻らないので、エンコード済みかどうかを確認してから処理しましょう。

スペースの扱い

スペースのエンコードには「%20」と「+」の2種類があります。URLのパス部分では「%20」、クエリパラメータ部分では「+」が使われることが多いですが、実装によって異なります。

文字コードの不一致

古いWebサイトではShift-JISでエンコードされていることがあります。UTF-8でデコードしようとすると文字化けします。日本語のURLエンコードで文字化けが起きた場合は、元の文字コードを確認してみましょう。

ポイント:現在のWebでは、UTF-8が事実上の標準です。新しいサイトやサービスを作る場合は、UTF-8を使っておけば問題ありません。

まとめ

URLエンコードは、日本語やスペースなどの「URLに使えない文字」を安全に送受信するための仕組みです。普段はブラウザが自動的に処理してくれますが、リンクの作成やAPIの利用、データの受け渡しなど、手動でエンコード・デコードが必要になる場面もあります。長いエンコード済みURLの中身を確認したいときや、日本語をパラメータに含めたいときは、URLエンコードツールを活用してください。