URLエンコードとは?デコード方法・使い方をわかりやすく解説
URLに日本語や特殊文字が含まれると、%E6%97%A5%E6%9C%AC%E8%AA%9E のような見慣れない文字列に変換されることがあります。これが「URLエンコード(パーセントエンコーディング)」です。この記事ではURLエンコードの仕組みと、オンラインツールを使った変換方法を解説します。
URLエンコードとは?
URLエンコード(パーセントエンコーディング)は、URLに使用できない文字を %XX 形式(XX は16進数)に変換する仕組みです。URLで使える文字はアルファベット・数字・一部の記号に限定されており、日本語・スペース・&・=・? などは特別な処理が必要です。
例えば「日本語」という文字列は UTF-8 でエンコードすると %E6%97%A5%E6%9C%AC%E8%AA%9E になります。
エンコードが必要な文字
| 元の文字 | エンコード後 | 用途・意味 |
|---|---|---|
| スペース | %20(または+) | 単語の区切り |
| & | %26 | クエリパラメータ区切り |
| = | %3D | キーと値の区切り |
| ? | %3F | クエリ文字列の開始 |
| # | %23 | フラグメント識別子 |
| 日本語(例:日) | %E6%97%A5 | マルチバイト文字 |
URLエンコード・デコードツールの使い方
st0z.com の URLエンコードツールを使えば、テキストのエンコード・デコードを簡単に行えます。
エンコード(テキスト→URL形式)
- テキスト入力欄にエンコードしたい文字列を入力します
- 「エンコード」ボタンをクリックします
- パーセントエンコードされた文字列が表示されます
デコード(URL形式→テキスト)
- エンコードされたURL文字列(%XX形式)を入力します
- 「デコード」ボタンをクリックすると元の文字列に戻ります
実践的な活用シーン
1. 検索クエリの確認・デバッグ
Google検索などのURLに含まれる ?q=%E6%97%A5%E6%9C%AC%E8%AA%9E をデコードして、実際に何を検索しているか確認できます。APIのデバッグ時にも役立ちます。
2. フォームデータの送信
HTML フォームで日本語を含むデータを送信する際、ブラウザが自動でURLエンコードします。サーバー側でデコードして元の値を取り出します。
3. APIパラメータの作成
REST APIのクエリパラメータに特殊文字を含む値を渡す際、URLエンコードが必要です。例:/search?keyword=%E6%A1%9C%E3%81%AE%E8%8A%B1
プログラミングでの使い方
// JavaScript
encodeURIComponent('日本語 テスト');
// → '%E6%97%A5%E6%9C%AC%E8%AA%9E%20%E3%83%86%E3%82%B9%E3%83%88'
decodeURIComponent('%E6%97%A5%E6%9C%AC%E8%AA%9E');
// → '日本語'
※ encodeURI() はURL全体を対象に(スラッシュ等を保持)、encodeURIComponent() はパラメータ値を対象に使います。
よくある質問
Q. スペースは %20 と + のどちらを使うべきですか?
A. URLのパス部分では %20、クエリパラメータ(フォームデータ)では + を使うのが慣習です。どちらもスペースを表しますが、使用箇所によって異なります。
Q. 二重エンコードとは何ですか?
A. すでにエンコードされた文字列を再度エンコードすることで、% 自体が %25 に変換されてしまいます(例:%20→%2520)。APIデバッグ時によく起こるバグです。
まとめ
URLエンコードはWebの基本的な仕組みのひとつです。日本語を含むURLの作成・デバッグ、APIパラメータの操作など様々な場面で必要になります。オンラインツールを使えばコーディング不要で素早く変換できます。
▶ 今すぐ使ってみる
st0z.com URLエンコード・デコードツール