URLエンコード・デコード
日本語URLの変換・パーセントエンコーディングをリアルタイムで処理
0 文字 / 0 bytes
0 文字 / 0 bytes
URLパーサー
URLを入力するとプロトコル・ホスト・パス・クエリパラメータなどに分解します
| プロトコル | - |
|---|---|
| ホスト | - |
| ポート | - |
| パス | - |
| クエリ文字列 | - |
| フラグメント | - |
クエリパラメータ
| キー | 値(エンコード済み) | 値(デコード済み) |
|---|
🔒 データはサーバーに送信されません。すべてブラウザ上で処理されます。
URLエンコードとは?
URLエンコード(パーセントエンコーディング)は、URLに直接使用できない文字を
%XXの形式に変換する仕組みです。
RFC 3986で定義されており、Webブラウザやサーバー間の通信で広く使われています。
たとえば日本語の「東京」は %E6%9D%B1%E4%BA%AC に変換されます。
スペースは %20、アンパサンド(&)は %26 に変換されます。
URLに安全に含められる文字(非予約文字: A-Z, a-z, 0-9, -, _, ., ~)はエンコードされません。
encodeURIとencodeURIComponentの違い
JavaScriptには2つのURLエンコード関数があり、用途によって使い分けます。
- encodeURIComponent — クエリパラメータの値など、URLの一部をエンコードするときに使います。
:/?#&=もエンコード対象です。 API開発でパラメータに特殊文字を含める場合はこちらが正解です。 - encodeURI — URL全体をエンコードするときに使います。
URLの構造文字(
:/?#など)はエンコードされません。 すでにURL形式の文字列の日本語部分だけをエンコードしたい場合に適しています。
よくあるエンコードの問題
- 二重エンコード — すでにエンコード済みの文字列を再度エンコードすると
%25が増殖します。エンコード前に一度デコードするのが安全です。 - スペースの扱い — URLでは
%20、HTMLフォームのapplication/x-www-form-urlencodedでは+になります。用途に応じて使い分けましょう。 - 日本語ファイル名 — ファイル名に日本語を含むURLは、サーバーやCDNの設定によってはデコードに失敗することがあります。ASCII文字のファイル名を推奨します。
- フラグメント(#)の扱い — フラグメントはサーバーに送信されません。エンコード時にフラグメントをクエリパラメータと混同しないよう注意が必要です。
URLエンコードが必要な場面
- APIのクエリパラメータに日本語や特殊文字を含める場合
- リダイレクトURLをパラメータとして渡す場合(URLの中にURLを含める)
- HTMLフォームのGETリクエストでマルチバイト文字を送信する場合
- OGPやSNSシェアURLに日本語タイトルを含める場合