ツールガイド

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形式)

  1. テキスト入力欄にエンコードしたい文字列を入力します
  2. 「エンコード」ボタンをクリックします
  3. パーセントエンコードされた文字列が表示されます

デコード(URL形式→テキスト)

  1. エンコードされたURL文字列(%XX形式)を入力します
  2. 「デコード」ボタンをクリックすると元の文字列に戻ります

実践的な活用シーン

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パラメータの操作など様々な場面で必要になります。オンラインツールを使えばコーディング不要で素早く変換できます。