URLエンコーダー / デコーダー
テキストをURLセーフなパーセントエンコード形式にエンコード、またはエンコードされたURLをプレーンテキストにデコードします。完全なURLをスキーム・ホスト・パス・パラメータに解析することもできます。
URLエンコーディングとは
URLエンコーディング(パーセントエンコーディング)は、URLで安全に使えない文字をパーセント記号と16進値で置き換える仕組みです。スペースは%20、アンパサンドは%26、日本語などの非ASCII文字はマルチバイトのエンコードに変換されます。これによってURLが有効で、ブラウザやサーバーが正しく解釈できる形になります。エンコーダーの下に配置されたURLパーサーはURLを構成要素に分解し、確認しやすくします。
encodeURIとencodeURIComponent
encodeURI()はURL全体をエンコードしつつ、URL構文として有効な文字(://?#&=)は残します。encodeURIComponent()はA-Z、a-z、0-9と一部の記号(-_.!~*'())以外のすべてをエンコードします。個々のパラメータ値にはencodeURIComponent()、URL全体にはencodeURI()を使うのが基本です。本ツールは両モードに対応しています。
URLパース
エンコーダーの下のパーサーは、あらゆるURLをプロトコル・ホスト・ポート・パス・クエリパラメータ・フラグメントに分解します。各クエリパラメータはキーと値のペアで表示されます。APIエンドポイントのデバッグ、リダイレクトURLの確認、複雑なクエリ文字列の把握などに便利です。
Base64エンコードには、Base64エンコーダー / デコーダーをご利用ください。
主な用途
- クエリ文字列の構築:URLに追加する前にユーザーが入力した検索語、フィルター、フォームの入力をエンコードして、インジェクションやリクエストの破損を防げます。
- WebhookとリダイレクトURLの構築:OAuthやWebhookフローのコールバックURLパラメータをエンコードして、サードパーティのリダイレクトチェーンを通過しても安全に転送されるようにします。
- メールキャンペーンのリンクトラッキング:UTMパラメータとトラッキングリンク内の宛先URLをエンコードして、メールクライアントがリンクを壊さないようにします。
- APIエンドポイントのデバッグ:サーバーログやエラーメッセージのパーセントエンコードされたURLをデコードして、元のパラメータを人間が読める形式で確認できます。
- 国際化URLの作成:国際的なウェブアプリケーションで使用するために、ASCII以外の文字(アクセント付き文字、中国語、アラビア語、ヒンディー語)をURLにエンコードできます。
- ファイルパスのURLエンコード:スペースや特殊文字を含むファイル名をエンコードして、URLパスセグメントとして正しく機能するようにします。
- SNSリンクの共有:ソーシャルメディアのメタタグに埋め込む前にURLをエンコードして、プラットフォームがパラメータを削除したり誤解釈したりしないようにします。
FAQ
URLでスペースが%20になるのはなぜ?
スペースはURLで有効な文字ではなく、URLに使えるのは安全なASCIIの一部に限られているためです。%20はスペース(ASCII 0x20)のパーセントエンコード表現です。HTMLフォームのapplication/x-www-form-urlencoded送信ではスペースが+になる場合もありますが、URLのパスやクエリ値の内部では%20が標準です。
URLエンコーディングとBase64の違いは?
URLエンコーディングは特殊文字をエスケープしてテキストをURLで安全に扱えるようにするもので、主にURL構文との互換性のためのものです。Base64はバイナリをASCIIテキストに変換するもので、主にテキスト専用の経路でバイナリを送るためのものです。用途は別ですが、両方を組み合わせることもあります(まずBase64、そのあとURLエンコード)。
URL全体をエンコードすべきですか、パラメータだけで十分ですか?
通常はパラメータだけで十分です。個別のクエリ値には「コンポーネントをエンコード」モード(デフォルト)を使います。「URL全体をエンコード」はパスやホスト名に非ASCII文字を含むURLでURL構造は残したまま文字だけをエスケープしたいときに利用してください。
URLエンコーダーはデータをどこかに送信しますか?
いいえ。すべてのエンコードとデコードはブラウザ内で完結します。URLやテキストデータがデバイスの外に出ることはありません。
encodeURIとencodeURIComponentの違いは何ですか?
encodeURIはURL全体をエンコードしつつ、URLの構造を持つ/、:、?などの文字を保持します。encodeURIComponentは個別の値をエンコードし、それらの文字も置き換えます — クエリ文字列の個々の値にはこちらを使ってください。
数字で見る
- RFC 3986(2005年)は構文的役割外でURLにパーセントエンコードが必要な18の「予約済み」文字を定義しています
- ブラウザの最大互換性を確保するために、URLは実際には2,048文字を超えないようにすることが推奨されます
- すべての非ASCII文字(コードポイント127以上)はURLに現れる前にUTF-8エンコードしてからパーセントエンコードする必要があります
- 国際化ドメイン名はPunycodeエンコードを使用します — 「münchen.de」は「xn--mnchen-3ya.de」になります