URLエンコーダー / デコーダー
URLエンコーダー/デコーダーは、テキストをパーセントエンコードされたURLに、またはその逆にリアルタイムで変換します。色分けされたパーツを持つインタラクティブなURL構造図、encodeURIとencodeURIComponentのライブ比較、多層デコードのためのエンコード深度検出、編集可能なクエリパラメータテーブル、文字レベルの差分ハイライト、6言語でのコードスニペットを搭載。100%クライアント側処理 — データがブラウザの外に出ることはありません。
ご提案はありますか?
新しいツールのリクエストや改善提案をお待ちしています — Slackコミュニティにご参加ください!
URLエンコーディング(パーセントエンコーディング)とは?
URLエンコーディングは、パーセントエンコーディングとも呼ばれ、RFC 3986で定義されています。URLで許可されていない文字や特別な意味を持つ文字を、パーセント記号と16進数字を使用した安全な表現に変換します。例えば、スペースは%20に、アンパサンドは%26になります。JavaScriptには2つの組み込み関数があります:encodeURI()は: / ? #のような構造文字を保持しながら完全なURLをエンコードし、encodeURIComponent()はすべての特殊文字をエスケープする必要がある個別の値をエンコードします。このツールはサーバー通信なしにブラウザ内ですべてのエンコードとデコードを実行します。
URLエンコーダー / デコーダーの使い方
- テキストタブでテキストを入力するか貼り付け — 文字レベルの差分ハイライト付きでリアルタイムにエンコードされます
- エンコードモードを選択:encodeURIComponent(値用)、encodeURI(完全なURL用)、または生のRFC 3986
- URLパーサータブでURLを貼り付けて、色分けされたパーツ(スキーム、ホスト、パス、クエリ、フラグメント)で構造を確認
- インタラクティブなテーブルでクエリパラメータを編集し、再構築されたURLをコピー
- 比較タブでencodeURIとencodeURIComponentの間で異なる文字を正確に確認
よくある質問
encodeURIとencodeURIComponentの違いは何ですか?
encodeURI()は完全なURLのエンコード用に設計されており、:、/、?、#、@などのURL構造文字を保持します。encodeURIComponent()はすべての特殊文字をエンコードし、個別の値(クエリパラメータなど)のエンコードに使用すべきです。例えば、encodeURI('https://example.com/path?q=hello world')はURL構造を保持しますが、encodeURIComponent('hello world')は'hello%20world'を返します。完全なURLにencodeURIComponentを使用すると、://や/文字がエンコードされてURLが壊れます。
URLにスペースの代わりに%20が表示されるのはなぜですか?
URLにはリテラルのスペースを含めることができません — %20としてパーセントエンコードする必要があります(フォームデータでは+が使われることもあります)。ブラウザのアドレスバーにURLを貼り付けると、ブラウザが自動的にスペースをエンコードします。%20はRFC 3986に準拠したURLでスペースを表現する標準的な方法です。このツールでは、どの文字がエンコードされるかを正確に確認し、読みやすいテキストにデコードして戻すことができます。
二重エンコードとは何ですか?どう検出しますか?
二重エンコードは、既にエンコードされたテキストがもう一度エンコードされた場合に発生します。例えば、%20(スペース)は%2520になります(%が%25にエンコードされるため)。これはソフトウェアパイプラインでURLエンコーディングが2回適用された場合によく起こります。このツールのエンコード深度検出器は多層エンコーディングを自動的に識別し、各デコード層を表示するため、問題の診断と修正が容易になります。
エンコードせずにURLで安全に使える文字はどれですか?
RFC 3986では、エンコード不要な非予約文字を定義しています:A-Z、a-z、0-9、ハイフン(-)、ピリオド(.)、アンダースコア(_)、チルダ(~)。: / ? # [ ] @ ! $ & ' ( ) * + , ; =のような予約文字はURL構造で特別な意味を持ち、データ値として使用する場合にのみエンコードすべきです。完全なリストは比較タブのRFC 3986リファレンステーブルで確認できます。
このツールを使用する際、データは安全ですか?
はい。このURLエンコーダー/デコーダーは、JavaScript組み込みのencodeURIComponent()とdecodeURIComponent()関数を使用してブラウザ内で100%動作します。テキストやURLがサーバーに送信されることはありません。すべての処理はデバイス上でローカルに行われます。