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 Encoder / Decoderを開く
- エンコードまたはデコードモードを選択する
- テキストまたはURLを入力する
- 変換結果がリアルタイムで表示される
- 結果をコピーして使用する
よくある質問
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エンコードで使用される文字エンコーディング方式