URL エンコーダー・デコーダー

テキストをURLで安全に使えるようエンコード(パーセントエンコーディング)、またはデコードします。クエリパラメータやリンクに不可欠です。

URLエンコードとは

URL エンコーディングはパーセント エンコーディングとも呼ばれ、Web アドレス内の安全でない文字をパーセント記号とそれに続くコードで置き換えます。スペースは %20 になり、アンパサンドは %26 になります。これにより、URL を壊さずにテキスト、スペース、アクセント、記号を URL に挿入できます。このツールは、URL で安全に使用できるようにテキストをエンコードし、パーセントでエンコードされたテキストを読み取り可能な形式にデコードします。

なぜ必要なのか

URL には安全に含めることができる文字セットが限られています。スペース、スラッシュ、疑問符、英語以外の文字を含む検索語、パラメータ値、またはパス セグメントを URL に直接入力すると、それらの文字が誤って解釈され、リンクが切断される可能性があります。エンコードにより、サーバーとブラウザが正しくデコードできる安全な表現に変換されます。クエリ文字列、API 呼び出し、またはリンクをプログラムで作成する人は常にこれを必要とします。

エンコードとデコード

エンコーディングは読み取り可能なテキストを取得し、それを URL セーフにし、リンクまたはクエリ パラメーターを構築するときに不可欠です。デコードではその逆が行われ、パーセントでエンコードされた文字列が読み取り可能なテキストに戻されます。これは、誰かから送信された URL を読んだり、API 呼び出しをデバッグしたり、パラメーターに実際に含まれる内容を検査したりするときに役立ちます。このツールは両方を 1 回のクリックで実行し、アクセント記号付き文字と英語以外の文字を UTF-8 を通じて正しく処理します。

よくある状況

クエリにスペースと記号が含まれる検索 URL を構築します。 URL 構造を壊すことなく、アンパサンドまたは等号を含む値をクエリ パラメーターを通じて渡します。エンコードされた長い URL を読んで、それが何を指しているのかを理解します。パラメータをエンコードする必要がある API リクエストを構築します。ブラウザ内で実行されるため、機密データを含む値を安全にエンコードまたはデコードできます。

URLエンコードとは

URL エンコーディングはパーセント エンコーディングとも呼ばれ、URL 内の安全でない文字または予約されている文字をパーセント記号とそれに続く 2 つの 16 進数に置き換えます。スペースは %20 になり、アンパサンドは %26 になります。 RFC 3986 標準により、URL は ASCII 文字の小さなセットに制限されているため、そのセット以外のもの、スペース、アクセント、絵文字、または ? のような予約記号は使用できません。 & = # データとして使用する場合は、URL の構造を壊さずにブラウザからサーバーに移動できるようにエンコードする必要があります。

encodeURI と encodeURIComponent

JavaScript には 2 つのエンコード関数が用意されており、間違ったエンコード関数を選択することはよくあるバグです。 encodeURIComponent は予約されているものすべてをエンコードし、クエリ文字列、検索語、パラメータ値、リダイレクト ターゲットに入力する個々の値に必要なものです。 encodeURI は / ? のような URL 構造文字を保持します。 & = は、機能を維持しながら URL 全体をエンコードすることを目的としています。経験則: URL 内の値には encodeURIComponent を使用し、URL 全体に対してのみ encodeURI を使用します。このツールはコンポーネントをエンコードします。これはほとんどの場合必要なものです。

よくある URL エンコードの間違い

2 つのバグが優勢です。すでにエンコードされている文字列をエンコードすると二重エンコードが発生し、%20 が %2520 になり、リンクが切断されます。エンコード済みの URL は決してエンコードせず、生のテキストのみをエンコードし、不明な場合は最初にデコードしてください。もう 1 つはプラス記号の曖昧さです。クエリ文字列では + は (HTML フォーム エンコーディングによる) スペースを意味しますが、URL パスではリテラルのプラスです。疑わしい場合は、スペースとして %20 を使用してください。これはどこでも明確です。また、値内のエンコードされていない & はパラメータ区切り文字として誤って読み取られ、データが分割されることにも注意してください。

よくある質問

URL エンコードと Base64 の違いは何ですか?
URL エンコードでは、安全でない文字をパーセント エンコードすることで、Web アドレスに対してテキストを安全にします。 Base64 は、バイナリ データをテキストセーフにするための別のエンコーディングです。これらは異なる目的を果たし、互換性はありません。
スペースが %20 になるのはなぜですか?
URL ではスペースを使用できないため、エンコードではスペースが %20 に置き換えられます。これは、ブラウザとサーバーがスペースにデコードする安全な表現です。一部のコンテキストでは代わりにプラス記号を使用します。
アクセント付き文字や英語以外の文字は処理できますか?
はい。このツールは UTF-8 を通じてエンコードするため、アクセント付きの文字やあらゆる言語の文字が正しくエンコードおよびデコードされます。
URL をいつデコードすればよいでしょうか?
エンコードされた URL またはパラメーターに実際に何が含まれているかを読み取りたい場合は、API 呼び出しのデバッグ、リンクの検査、または誰かから送信された長いエンコードされたアドレスの理解に役立ちます。
私のデータはプライベートですか?
はい。エンコードとデコードはアップロードせずにブラウザーで行われます。
URL エンコードとデコードの違いは何ですか?
エンコーディングにより、安全でない文字がパーセント コード (スペースは %20 になります) に変換されるため、URL 内のテキストは安全になります。デコードするとこれが逆転し、%20 が表示用のスペースに戻ります。エンコードを使用して URL を構築し、デコードを使用して URL を読み取ります。
encodeURIComponent と encodeURI をどのような場合に使用する必要がありますか?
URL 内の個々の値 (クエリ パラメーター値など) に encodeURIComponent を使用すると、予約されているすべてがエンコードされます。 encodeURI は / ? などの構造文字を保持するため、機能を維持したい URL 全体に対してのみ使用してください。 & =。
Why did my URL get %2520 in it?
これは二重エンコーディングです。すでにエンコードされた文字列が再度エンコードされたため、%20 の % は %25 になりました。生のテキストのみをエンコードし、すでにエンコードされた URL は決してエンコードしないでください。不明な場合は、最初にデコードしてから 1 回エンコードしてください。
スペースを %20 または + としてエンコードする必要がありますか?
%20 は標準であり、どこでも機能します。 + はクエリ文字列形式データ内のスペースのみを意味し、URL パス内ではリテラルのプラスになります。疑わしい場合は、%20 を使用してください。