URLエンコード/デコード
URLやクエリ文字列を即座にエンコードまたはデコードします。完全にブラウザ内で動作する無料のオンラインURLエンコーダー&デコーダーです。
URLエンコード/デコードとは?
URLエンコード/デコードは、URL内の特殊文字をパーセントエンコードされた形式に変換したり、その逆を行う無料のオンラインツールです。URLエンコーディング(パーセントエンコーディングとも呼ばれる)は、スペース、特殊文字、非ASCII文字を含むURLが正しく送信されるために不可欠です。適切なエンコーディングがない場合、アンパサンド、疑問符、スペースなどの文字がURLの解析を壊し、不正なルーティングを引き起こしたり、Webアプリケーションにセキュリティの脆弱性を導入する可能性があります。
URLエンコード/デコードツールの使い方
- エンコード(特殊文字をパーセントコードに変換)またはデコード(パーセントコードを読み取り可能なテキストに戻す)のどちらが必要かを選択します。
- エンコードするには、入力フィールドにURLまたはテキストを入力し、「URLをエンコード」をクリックします。
- デコードするには、パーセントエンコードされたURLを貼り付け、「URLをデコード」をクリックします。
- 出力を確認して、すべての特殊文字が適切にエンコードまたはデコードされていることを確認します。
- コピーボタンを使用して出力フィールドから結果をコピーします。
ヒントとベストプラクティス
クエリパラメータは個別にエンコード
複数のクエリパラメータを持つURLを構築する際は、URL全体をエンコードするのではなく、各パラメータ値を個別にエンコードしてください。?、&、=などの構造的な文字はエンコードされないままにし、URLの構造が保持されるようにします。エンコードが必要なのはパラメータ値のみです。
クリック前にデコードされたURLを再確認
エンコードされたURLを受け取り、リンク先を確認したい場合は、まずデコードして完全なリンク先を検査してください。悪意のあるリンクはURLエンコーディングを使用してフィッシングドメインや有害なクエリパラメータを偽装することがあるため、これは良いセキュリティ習慣です。
Webアプリケーションのデバッグに使用
Webアプリケーションのデバッグ時、ブラウザのアドレスバーのURLエンコードされたパラメータは読みにくい場合があります。URL全体をデコードフィールドに貼り付けて、すべてのクエリパラメータを平文で表示すると、パラメータ値の問題をはるかに簡単に特定できます。
プラス記号を慎重に処理
URLクエリ文字列では、プラス記号(+)がスペースの代替エンコーディング(%20の代わり)として使用されることがあります。このツールは標準的なパーセントエンコーディング(スペースには%20)を使用しています。フォームデータがスペースにプラス記号を使用している場合は、デコード時にこの違いに注意してください。
一般的な使用例
コード内での動的URL構築
ユーザー提供の検索語をクエリ文字列に追加するなど、プログラム的にURLを構築する場合、スペースや特殊文字を正しく処理するために値をエンコードする必要があります。このツールを使用して、エンコーディングロジックが期待される出力を生成することを確認したり、アプリケーションのURL構築のデバッグ時にテスト値を素早くエンコードできます。
特殊文字を含むリンクの共有
非英語文字(中国語、日本語、アラビア語など)、絵文字、特殊記号を含むURLは、メール、メッセージングアプリ、ドキュメント、HTMLなどすべての環境で機能するために適切なエンコーディングが必要です。共有前にURLをエンコードして、プラットフォームやメールクライアントに関係なく、受信者がクリックして正しい目的地に到着できるようにしましょう。
Webトラフィックとログの分析
サーバーアクセスログやアナリティクスデータには、URLエンコードされたパスやクエリパラメータが含まれていることがよくあります。これらのURLをデコードして、ユーザーがどのページを訪問し、どのような検索語やフィルター値を使用したかを理解します。これはルーティングの問題のデバッグ、ユーザー行動の分析、404エラーのトラブルシューティングに不可欠です。
FAQ
なぜURLをエンコードする必要があるのですか?
URLには限られたASCII文字のみを含めることができます。スペース、アンパサンド、非ASCII文字などの特殊文字は、ウェブアドレスやクエリ文字列で正しく送信されるためにパーセントエンコードする必要があります。
URLエンコーディングではどの文字がエンコードされますか?
URLエンコーディングは、予約文字(&、=、?、#、スペースなど)と非ASCII文字をパーセント記号とその16進数値に変換します(例:スペースは%20になります)。
encodeURIとencodeURIComponentの違いは何ですか?
JavaScriptでは、encodeURI()は完全なURIをエンコードしますが、:、/、?、#などの構造的な文字を保持します。encodeURIComponent()はアルファベット、数字、一部の特殊文字(- _ . ! ~ * ' ( ))を除くすべてをエンコードします。クエリパラメータ値にはencodeURIComponent()を、完全なURLにはencodeURI()を使用してください。このツールはencodeURIComponentの動作を使用して最大限のエンコーディングを提供します。
URLエンコーディングでXSS攻撃を防止できますか?
URLエンコーディングだけではクロスサイトスクリプティング(XSS)攻撃を防止するには不十分ですが、多層防御戦略の重要な一部です。ユーザー入力がURLに含まれる場合、エンコーディングにより特殊文字がHTMLやJavaScriptとして解釈されるのを防ぎます。ただし、適切なXSS防止にはコンテキスト固有の出力エンコーディング、コンテンツセキュリティポリシー、入力バリデーションも必要です。
一部のURLで%20が使われ、他ではスペースに+が使われるのはなぜですか?
%20と+はどちらもURL内のスペースを表すことができますが、異なる標準に由来します。%20はRFC 3986で定義された標準的なパーセントエンコーディングで、URLのどこでも機能します。スペースのプラス記号(+)はHTMLフォーム送信で使用されるapplication/x-www-form-urlencoded形式に由来し、クエリ文字列値内でのみ適用されます。最大限の互換性のためには、%20がより安全な選択です。