URLエンコーダー
URLやURLコンポーネントのエンコード・デコードを瞬時に実行。コンポーネントモードとフルURLモードを切り替え可能。すべてブラウザ内で処理されます。
URLエンコーディングとは
URLエンコーディングは、URLで使用できない文字を安全に送信できる形式に変換する仕組みです。安全でない文字をパーセント記号と2桁の16進数で置換します。例えば、スペースは%20に、アンパサンドは%26に変換されます。
この無料オンラインツールは入力と同時にリアルタイムでURLのエンコード・デコードを行います。2つのモードを搭載しています。個々のURLパラメータをエンコードするコンポーネントモードと、URLの構造文字を保持しながらエンコードするフルURLモードです。すべての処理はブラウザ内で完結します。
主な機能
- リアルタイムエンコード・デコード — 入力と同時に出力が即座に更新
- コンポーネントモード — :、/、?、#、&、=を含むすべての特殊文字をエンコード
- フルURLモード — URL構造文字を保持しながら特殊文字のみをエンコード
- 入れ替えボタン — エンコードとデコードを素早く切り替え
- テキストファイルのアップロード対応
- ワンクリックダウンロードとクリップボードコピー
- 長いURLに対応するフルスクリーンモード
- 完全なUTF-8サポート — 絵文字や日本語を含むマルチバイト文字に対応
- 100%クライアント側処理 — URLやデータがブラウザの外に出ることはありません
- デスクトップ・モバイル対応のレスポンシブデザイン
使い方
- モードを選択します。エンコードまたはデコードを選びます。
- 左パネルにテキストを入力または貼り付けます。右パネルに結果が即座に表示されます。
- クエリパラメータにはコンポーネントモード、URL構造を保持する場合はフルURLモードを選択します。
- 入れ替えボタンで操作を逆転 — エンコード・デコードの往復確認に便利です。
- 「コピー」で結果をコピー、「ダウンロード」でファイルとして保存できます。
なぜURLエンコーディングが重要なのか
URLには限られたASCII文字のみ使用できます。スペース、アンパサンド、疑問符、非ASCII文字はパーセントエンコードしなければ正しく送信できません。適切なエンコードがないと、ブラウザが構造を誤解したり、サーバーがリクエストを拒否したり、データが転送中に破損する可能性があります。
コンポーネントモードとフルURLモードの使い分けは非常に重要です。クエリパラメータを構築する際はコンポーネントモードで各パラメータ値を個別にエンコードする必要があります。フルURLモードを使うと&や=が保持されるため、クエリ文字列の構造が壊れます。逆に、URL全体をエンコードする場合はフルURLモードでスキーム、ホスト、パス、クエリを定義する構造文字を保持します。
よくある使用例
- APIクエリ文字列の構築 — 特殊文字やスペースを含むパラメータ値を適切にエンコード
- 不正なURLのデバッグ — パーセントエンコードされたURLをデコードして元のテキストを確認
- フォームデータの処理 — ユーザー入力をURLクエリパラメータに安全に含める
- リダイレクトURL — OAuthや認証フローでパラメータとして渡すコールバックURLをエンコード
- 国際化対応 — アクセント文字や日本語を含むURLをエンコード
- Webスクレイピング — 抽出したURLをデコードして元のアドレスを取得
- ディープリンク — モバイルアプリやSPA向けの適切にエンコードされたディープリンクを構築
パーセントエンコーディングの仕組み
パーセントエンコーディングでは、文字の各バイトを%XXの形式で表現します。XXは2桁の16進数値です。A-Z、a-z、0-9、および一部の特殊文字はエンコード不要の非予約文字です。それ以外のすべての文字はエンコードが必要です。
UTF-8のマルチバイト文字では、各バイトが個別にエンコードされます。例えば漢字の「中」は%E4%B8%ADとしてエンコードされます。このため、非ASCII文字を含む文字列のURLエンコードはサイズが大幅に増加する場合があります。JavaScriptのencodeURIComponent関数は、文字列をまずUTF-8バイトに変換してから各バイトをパーセントエンコードする処理を自動的に行います。
URLエンコーディングのヒント
- クエリパラメータの個別の値には必ずencodeURIComponentを使用してください。URL全体をこの方法でエンコードしてはいけません
- URL全体の構造を保持しながらエンコードする場合のみencodeURIを使用してください
- 二重エンコードはよくあるバグです — 既にエンコードされた文字列を再度エンコードすると%20が%2520になります
- デバッグ時はまずURLをデコードして実際の値を確認し、必要に応じて再エンコードしましょう
- スペースはクエリ文字列で%20または+としてエンコードできます。%20が標準ですが、+はフォーム送信でよく使われます
- JavaScriptのdecodeURIとdecodeURIComponentは不正な入力でエラーを投げます。このツールはこれらのエラーを適切に処理します
