URLエンコード・デコード変換

テキストを入力するだけで、URLエンコード(パーセントエンコーディング)とデコードをリアルタイムで変換します。

🔗 URLエンコード・デコード

入力テキスト 0 文字
変換結果 0 文字

📋 よく使われるエンコード文字一覧

文字 エンコード後 説明
(空白)%20半角スペース(+に変換される場合もあり)
/%2Fスラッシュ(パス区切り文字)
:%3Aコロン(スキーム区切り文字)
&%26アンパサンド(クエリパラメータ区切り)
?%3Fクエスチョンマーク(クエリ開始文字)
=%3Dイコール(キーと値の区切り)
#%23ハッシュ(フラグメント識別子)
%%25パーセント(エスケープ文字自体)
%E3%81%82日本語ひらがな(UTF-8で3バイト)
%E6%9D%B1漢字(UTF-8で3バイト)
%E3%82%A2カタカナ(UTF-8で3バイト)

URLエンコードとは?

URLエンコード(パーセントエンコーディング)とは、URLに含められない文字を「%」と16進数の組み合わせに変換する仕組みです。たとえば、半角スペースは「%20」、日本語の「あ」はUTF-8で「%E3%81%82」のように変換されます。これにより、本来URLで使えない文字を安全に送受信できるようになります。

URLで使用できる文字はRFC 3986によって定められており、英字(A-Z, a-z)、数字(0-9)、および一部の記号(- _ . ~)のみが「非予約文字」として、そのまま使用できます。それ以外の文字(日本語、中国語、特殊記号など)はすべてパーセントエンコーディングによる変換が必要です。

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

予約文字の衝突を防ぐ

URLには構造上の意味を持つ予約文字があります。たとえば「?」はクエリ文字列の開始、「&」はパラメータの区切り、「/」はパスの区切りを意味します。もしクエリパラメータの値に「&」がそのまま含まれていると、ブラウザはそれを区切り文字と誤認してしまいます。エンコードすることで、文字そのものとしての意味と構造上の意味を区別できます。

非ASCII文字の送信

URLの仕様上、日本語や韓国語、アラビア文字などの非ASCII文字をそのまま含めることはできません。これらの文字をURLに含めるには、まずUTF-8でバイト列に変換し、各バイトを「%XX」形式にエンコードする必要があります。ブラウザのアドレスバーでは日本語がそのまま表示されることがありますが、実際の通信ではエンコードされた形式で送信されています。

encodeURIとencodeURIComponentの違い

JavaScriptには2つのエンコード関数があり、用途に応じた使い分けが重要です。

encodeURIComponent(コンポーネント)

クエリパラメータの値やパスの一部分など、URLの「部品」をエンコードする場合に使います。「:」「/」「?」「#」「&」「=」などの予約文字もすべてエンコードされるため、値に含まれるこれらの文字がURL構造を壊すことがありません。最も使用頻度が高く、API連携やフォーム送信で標準的に利用されます。

encodeURI(URL全体)

URLの全体構造を保ったままエンコードする場合に使います。「:」「/」「?」「#」などの予約文字はエンコードされず、URLとしての構造が維持されます。すでに組み立てられたURLに含まれる日本語などの非ASCII文字だけを変換したい場合に適しています。

使い分けのポイント:迷ったらencodeURIComponentを使うのが安全です。クエリパラメータの値をエンコードする場面が最も多く、予約文字も確実にエンコードされるため、意図しないURLの破壊を防げます。encodeURIは完成済みのURL全体を処理したい場合にのみ使用してください。

よくある利用場面

クエリパラメータの生成

検索機能やフィルタリングなど、URLのクエリパラメータにユーザー入力を含める場合、エンコードは必須です。たとえば「東京 渋谷」という検索語をクエリパラメータにする場合、「?q=%E6%9D%B1%E4%BA%AC%20%E6%B8%8B%E8%B0%B7」のようにエンコードして送信します。

日本語ファイル名の処理

Webサーバー上の日本語ファイル名を含むURLを正しく扱うには、ファイル名部分のエンコードが必要です。メール本文やチャットにURLを貼り付ける際、日本語が含まれていると途中でリンクが切れてしまうことがありますが、エンコードすることでこの問題を回避できます。

API連携・データ送信

REST APIに対してGETリクエストを送信する場合、パラメータの値はURLエンコードする必要があります。特にJSON文字列や特殊記号を含むデータをクエリパラメータとして送信する場合、エンコードを忘れるとサーバー側で正しく解析できず、エラーの原因となります。

RFC 3986とURL仕様

RFC 3986は、URI(Uniform Resource Identifier)の構文を定めた標準仕様です。この規格により、URLで使用できる文字が厳密に定義されています。非予約文字(英数字と「-」「_」「.」「~」)はエンコード不要ですが、それ以外の文字はパーセントエンコーディングが必要です。また、UTF-8がエンコードの標準文字コードとして推奨されており、現代のWebブラウザやサーバーはこれに準拠しています。

まとめ:URLエンコードは、Web開発において避けて通れない基本技術です。このツールを活用すれば、エンコード結果の確認やデバッグを素早く行えます。API開発、フロントエンド開発、SEO対策など、URLを扱うあらゆる場面でお役立てください。