お気に入り

開発者向けツール

InoTools Blog
カテゴリ:チュートリアル

URLエンコードとは?仕組みと変換方法を解説

URLに日本語や特殊文字を含めると文字化けすることがあります。URLエンコードの仕組みを理解して、安全にURLを扱いましょう。

URLエンコードとは何か?

URLエンコード(パーセントエンコーディング)は、URLに使用できない文字を %XX(16進数) 形式に変換する処理です。RFC 3986 で定義されたURIの仕様に基づいています。

例えば:

  • スペース → %20
  • &%26
  • 東京%E6%9D%B1%E4%BA%AC
  • こんにちは%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

URLで安全に使える文字は、英数字(A-Z, a-z, 0-9)と一部の記号(-, _, ., ~)のみです。それ以外はすべてエンコードが必要です。

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

URLには使える文字に厳格なルールがあります。エンコードなしでは以下の問題が発生します:

  • 文字化け — 日本語などの非ASCII文字がサーバーに正しく伝わらない
  • パラメータの破壊&= がクエリパラメータの区切り文字と誤解される
  • セキュリティリスク — 意図しないパラメータの注入やXSS攻撃の原因になる

URLエンコードが使われている場面

  • 検索クエリ — Google検索で日本語キーワードを含むURL
  • フォーム送信 — HTMLフォームのデータ(application/x-www-form-urlencoded)をサーバーに送信
  • API呼び出し — RESTful APIのクエリパラメータ構築
  • リダイレクト — URLパラメータに遷移先URLを安全に含める
  • Cookie — Cookie値に含まれる特殊文字のエスケープ
  • メールリンクmailto: リンクの件名や本文

URLエンコードのメリット

  • 国際化対応 — 日本語・中国語・韓国語などあらゆる言語の文字をURLに安全に含められる
  • データの完全性 — 予約文字(?, &, =, #)をデータとして扱える
  • 標準準拠 — RFC 3986に基づく世界共通の仕組みで、どのブラウザ・サーバーでも同じ結果
  • セキュリティ — パラメータインジェクションやXSS攻撃のリスクを軽減

URLの変換を行うには

URLエンコード・デコードは 本サイトの「URL Encoder / Decoder」で簡単に行えます。すべての処理はブラウザ内で完結し、入力データが外部サーバーへ送信されることはありません。登録不要・完全無料でご利用いただけます。

URLエンコーダーでいますぐ変換する

ツールの使い方

  1. URL Encoder / Decoderを開く
  2. エンコードまたはデコードモードを選択する
  3. テキストまたはURLを入力する
  4. 変換結果がリアルタイムで表示される
  5. 結果をコピーして使用する

よくある質問

Q. encodeURIとencodeURIComponentの違いは?

A. encodeURI() はURL全体をエンコードし、://?& などの構造文字はそのまま保持します。encodeURIComponent() はパラメータの値をエンコードするためのもので、これらの文字もすべてエンコードします。パラメータ値には encodeURIComponent() を使ってください。

Q. 日本語URLはSEOに影響しますか?

A. Googleは日本語URLを正しく処理できるため、SEOに悪影響はありません。ただし、SNSでの共有時にURLが長くなるため、短縮URLの併用が有効な場合があります。

Q. +%20 の違いは?

A. どちらもスペースを表しますが、+application/x-www-form-urlencoded(フォーム送信)で使用され、%20 はURIの標準仕様(RFC 3986)で使用されます。APIのクエリパラメータでは %20 が推奨されます。

関連用語

  • パーセントエンコーディング — URLエンコードの正式名称。%XX 形式で文字を表現
  • RFC 3986 — URIの構文を定義する国際標準仕様
  • クエリパラメータ — URLの ? 以降に付与される key=value 形式のデータ
  • URI (Uniform Resource Identifier) — リソースを一意に識別する文字列。URLはURIの一種
  • UTF-8 — URLエンコードで使用される文字エンコーディング方式