「検索フォームに日本語を入力して送信したら、URLが %E6%97%A5%E6%9C%AC みたいな文字列になった」「共有したいリンクのURLに日本語が含まれていて、そのまま貼り付けると文字化けする」——Webサイトやアプリを扱っていると、日本語や記号を含むURLをどう扱えばいいのか分からず困ることがあります。
この記事では、URLエンコード(パーセントエンコーディング)のやり方を初心者向けに解説します。URLで使える文字と使えない文字の違い、日本語やスペースの変換方法、クエリパラメータの作り方、エンコード済み文字列を元に戻すデコード方法まで、無料ツールの使い方とあわせて紹介します。
URLエンコードとは?
URLエンコード(パーセントエンコーディング)は、URLにそのまま使えない文字を「%」と2桁の16進数に置き換える変換です。たとえば日本語の「あ」は「%E3%81%82」、スペースは「%20」という表記になります。
URLには、次のような「直接使えない文字」があります。
| 文字の種類 | 例 | 扱い |
|---|---|---|
| 英数字 | A-Z, a-z, 0-9 | そのまま使える |
| 予約文字 | - _ . ~ | そのまま使える |
| 日本語 | あ、日、本 | エンコードが必要 |
| スペース | (空白) | %20 に変換 |
| 記号の一部 | ! ’ ( ) * など | エンコードされる場合がある |
「%E3%81%82」の「E3 81 82」は、日本語の文字をUTF-8という文字コードで表したときのバイト列を16進数で示したものです。つまりURLエンコードは「文字をバイト列に変換し、URLで安全な形に書き直す」作業といえます。
なぜ必要なのか:URLに日本語や記号をそのまま入れると、ブラウザやサーバーによって解釈が異なり、リンクが壊れたり検索結果が正しく動かなかったりする原因になります。エンコードして安全な文字だけにすることで、どの環境でも同じURLとして扱えます。
主な文字のエンコード例
代表的な文字のエンコード結果をまとめました。
| 変換前 | 変換後 | 備考 |
|---|---|---|
| あ | %E3%81%82 | 日本語(UTF-8) |
| 日 | %E6%97%A5 | 日本語(UTF-8) |
| スペース | %20 | 空白1つ分 |
| ! | %21 | RFC 3986 ではエンコード |
| ’(アポストロフィ) | %27 | RFC 3986 ではエンコード |
| ( ) | %28 %29 | 丸括弧 |
たとえば「https://example.com/search?q=日本語」というURLの「日本語」の部分をエンコードすると、次のようになります。
https://example.com/search?q=%E6%97%A5%E6%9C%AC%E8%AA%9E
「日」= %E6%97%A5、「本」= %E6%9C%AC、「語」= %E8%AA%9E が連結されているのが分かります。
読み方のコツ:%の後に来る2桁の16進数(00〜FF)は「1バイト」を表します。日本語1文字はUTF-8で3バイト(例: あ = E3 81 82)になるため、%E3%81%82 のように%が3つ並びます。
クエリパラメータで日本語を使う
検索や絞り込みでよく使う「クエリパラメータ」(URLの ? 以降の部分)に日本語を含める場合も、エンコードが必要です。
- パラメータ名と値を決める(例: q=日本語)
- 値の部分をエンコードする(例: 日本語 → %E6%97%A5%E6%9C%AC%E8%AA%9E)
- URLに組み立てる(https://example.com/search?q=%E6%97%A5%E6%9C%AC%E8%AA%9E)
ブラウザのアドレスバーでは日本語のまま表示されることもありますが、リンクを共有するときやコードに埋め込むときはエンコードした形が安全です。メールやチャット、SNSでURLを共有して文字化けを防ぐのにも役立ちます。なお、複数のパラメータを並べる場合は「&」で区切ります(例: q=日本語&page=2)。このとき「&」自体も値に含めたい場合は、値の部分をエンコードしてから組み立ててください。
デコードのやり方
エンコード済みの文字列を元の日本語に戻すことをデコードといいます。「%E6%97%A5%E6%9C%AC」をデコードすると「日本」に戻ります。ログやツールに出力された%表記の意味を確認したいときなどに使います。
実践的な使い方としては、Webサイトのアクセスログや解析ツールに出力されたURLから、ユーザーが検索したキーワードを読み取るケースが代表的です。たとえば「q=%E6%97%A5%E6%9C%AC%E8%AA%9E」のような表記を見かけたら、デコードすることで「q=日本語」という実際の検索語に戻せます。%表記をそのまま読む必要はありません。
重要な注意:URLエンコードは「暗号化」ではありません。%表記は変換ルールが公開されているため、誰でも簡単にデコードして元の文字列を取り出せます。パスワードや個人情報をURLに含めるときは、エンコードだけでは保護にならない点に注意してください。
注意:スペースの扱いには2種類あります。URLエンコードでは「%20」ですが、フォーム送信(application/x-www-form-urlencoded)では「+」が使われることがあります。ツールによっては「+」をスペースとして扱う場合と扱わない場合があるため、デコード結果がずれるときは確認しましょう。
Tools HubのURLエンコード・デコードツールで簡単に変換
手作業でのエンコードは、日本語や記号が増えるほど間違いやすくなります。Tools HubのURLエンコード・デコードツールなら、貼り付けた文字列をボタン1つで変換できます。入力した文字列はサーバーに送信されず、端末内だけで処理されます。
使い方(3ステップ)
文字列を貼り付け
エンコードしたい日本語やテキスト、またはデコードしたい%表記の文字列を入力欄に貼り付けます。
変換を選択
「エンコード」または「デコード」のボタンを押します。エンコードはRFC 3986に完全準拠しており、!や括弧などの記号も正しく変換されます。
コピーして利用
変換結果を「コピー」ボタンでクリップボードにコピーし、リンクやコードにそのまま利用します。
この記事で紹介したツール
URLエンコード・デコードツール
ブラウザで完結・無料・登録不要。日本語や記号の変換を一括で処理できます。
まとめ
- URLエンコードは「%」と2桁の16進数で文字を表す変換。日本語やスペース、記号の一部が対象
- 日本語1文字はUTF-8で3バイトになり、%表記が3つ並ぶ(例: あ = %E3%81%82)
- スペースは「%20」、フォーム送信では「+」が使われることもある
- クエリパラメータに日本語を含める場合は、値の部分をエンコードしてからURLを組み立てる
- エンコード済み文字列を元に戻すのがデコード。ログやツールの%表記の確認に使う
- Tools Hubのツールなら、RFC 3986完全準拠で確実に変換できる
URLエンコードは、最初は「%だらけの文字列」に見えて難しく感じますが、**「日本語は3バイトずつ%で区切る」「スペースは%20」**という2つのポイントを押さえれば、理解は難しくありません。実際に変換して確認したいときは、ぜひツールを使ってみてください。
よくある質問
URLエンコードとは何ですか?
URLにそのまま使えない文字(日本語・スペース・記号の一部)を「%」と2桁の16進数に置き換える変換です。パーセントエンコーディングとも呼ばれます。
日本語はどのようにエンコードされますか?
日本語の文字はUTF-8という文字コードでバイト列に変換され、「%E3%81%82」のような%表記になります。1文字あたり3バイト(%が3つ)になるのが一般的です。
スペースは「%20」と「+」のどちらですか?
URLエンコードでは「%20」です。「+」はフォーム送信(application/x-www-form-urlencoded)でスペースを表すために使われる別の規約です。ツールや環境によって扱いが異なるため注意してください。
エンコード済みの文字列を元に戻すにはどうすればいいですか?
エンコード済み文字列をデコードします。Tools HubのURLエンコード・デコードツールに%表記を貼り付けて「デコード」を押すと、元の日本語やテキストに戻ります。