URLエンコーダー / デコーダー
URLとクエリ文字列で使用するためにテキストをエンコードするか、パーセント エンコードされたURLをデコードして読みやすいテキストに戻します。完全なUnicode サポート付きで、すべてブラウザで実行されます。
出力
使い方
エンコードまたはデコードを選択してテキストまたはURLを貼り付けます。デフォルトでは、単一の値をエンコードします (& = ? / のような文字をエスケープします)。「完全なURI」をオンにして、URLの構造を保持し、安全でない文字のみをエスケープします。コピーをクリックして結果を取得します。 URL エンコード (パーセント エンコーディングとも呼ばれます) は、テキストをURL またはクエリ文字列内に安全に配置するための標準的な方法です。限定された予約文字と予約されていないASCII文字のセット外のすべての文字は、パーセント記号の後に、その文字のバイト値を表す16進数2桁で置き換えられます。スペースは %20 になり、アンパサンドは %26 になり、以下同様です。 URLは限定されたASCII文字セットのみを許可します。文字、数字、- _ . ~ のような一握りの句読点。スペース、引用符、英語以外の文字を含むそれ以外のすべてのものは、URLの内部を安全に移動する前にエスケープする必要があります。エンコードがないと、ブラウザまたはサーバーはURLの一部がどこで終わり別の部分が開始するかを誤読する可能性があります。値内のエスケープされていない & は新しいクエリパラメータの開始のように見え、エスケープされていない ? はクエリ文字列自体の開始のように見え、エスケープされていない # はフラグメント識別子として扱われ、それ以降のすべてをサイレントに切り取ります。 「café & bar」というフレーズをクエリ値の例として考えます。スペース文字は %20 になり、アンパサンドは %26 になり、アクセント付き é (UTF-8 で2バイト) は %C3%A9 になります。パーセント エンコードされると、フレーズは caf%C3%A9%20%26%20bar に変わります。デコードはプロセスを逆にします。各 %XX ペアはUTF-8 バイトとして読み取られ、元の文字に再組み立てされるため、その文字列をデコードすると、café & bar が最初と全く同じように戻されます。 完全なURLのエンコードと単一のクエリ文字列値のエンコードは異なるジョブです。Full-URI エンコーディングは安全でない文字をエスケープしますが、意図的にURL の構造文字 (/ : ? & = #) をそのままにしておきます。これはURLの独自の構文を壊すからです。コンポーネント エンコーディング (ここではデフォルト) はそれらの文字もエスケープします。クエリ文字列に挿入される値は、迷わしい & または = がサーバーが新しいパラメータと誤解する可能性があるため、導入を許可してはならないからです。 パーセント エンコーディングは日常のウェブ作業で絶えず表示されます。ユーザー入力からクエリパラメータを構築する、検索語やフィルタを含むリンクを共有する、APIリクエストURLを組み立てる、フォーム データを GET で送信する、マーケティングリンク用のUTMパラメータを構築する。また、decodeURIComponent でスローされた古典的な「malformed URI」エラーの修正でもあります。そのエラーはデコードされている文字列に、有効な16進数2桁が続かない % が含まれていることを意味します。通常はエンコードが不正またはダブルエンコードされたためです。
よくある質問
- コンポーネントのエンコードと完全なURIのエンコードの違いは何ですか?
- コンポーネント エンコーディング (デフォルト) は & = ? / のような予約文字をエスケープするため、単一のクエリ値に最適です。Full-URI エンコーディングはそれらの文字をそのままにしておくため、完全なURLに最適です。
- 英語以外の文字を処理しますか?
- はい。テキストはUTF-8 としてパーセント エンコードされるため、アクセント、絵文字、CJK文字は正しくエンコードおよびデコードされます。
- 無効なエンコードされたテキストを貼り付けた場合はどうなりますか?
- パーセント エスケープが形成が悪い場合 (孤立した % など)、デコーディングはガベージを生成する代わりにエラーを表示します。
- スペースが時々 %20 になり、他の時には + になるのはなぜですか?
- どちらもスペースを表していますが、コンテキストが異なります。パーセント エンコーディング (RFC 3986) は常に %20 を使用します。これはこのツールが生成するものです。+ 文字は、+ がスペースを意味し、リテラル プラス記号は %2B としてそれ自体がエンコードされなければならないHTML フォーム送信で使用される古い application/x-www-form-urlencoded 形式からの従来の設定です。