このツールについて
エンコーディングのバグは、API の欠陥の確実な発生源です。スペースに変わってしまうプラス記号、値に含まれるアンパサンドがパラメーターを分割してしまう、二重にエンコードされたリダイレクト URL などです。このツールは、よく使われる 3 つのエンコーディングを明示的に扱います。コンポーネントモードは単一の値向けの encodeURIComponent、完全な URI モードは URL 全体向けの encodeURI、フォームモードはブラウザが HTML フォームで送る形式に対応します。クエリパーサーはすべてのパラメーターを順番に、デコード後と生の形式で一覧表示し、多くのツールが黙ってまとめてしまう tag=a&tag=b のような重複キーも保持します。URL の分解には、fetch() と同じブラウザの WHATWG URL パーサーを使います。
使い方
- 「Encode」(エンコード)か「Decode」(デコード)とエンコードのモードを選び、テキストを貼り付けます。
- 「Swap」(入れ替え)で出力を入力に戻し、往復変換を確認します。
- 「Query parser」(クエリパーサー)に切り替えて、重複や空のものも含めてパラメーターを確認します。
- 「URL breakdown」(URL の分解)で、プロトコル、ホスト、ポート、パスのセグメント、クエリ、フラグメントを個別に確認します。
URL エンコード / デコードツール のよくある質問
encodeURI ではなく encodeURIComponent を使うべきなのはどんなときですか?
クエリの値 1 つやパスのセグメント 1 つなど、単一の部分には encodeURIComponent を使います。& = ? / # をエスケープするからです。encodeURI はそれらの文字をそのまま残すため、すでに正しく構成された URL 全体にのみ使ってください。
+ がスペースを意味することがあるのはなぜですか?
HTML フォームや多くのクエリ文字列で使われる application/x-www-form-urlencoded のデータでは、+ はスペースを表します。パスの中では + は文字どおりのプラス記号です。値に + が含まれる可能性がある場合は、%2B とエンコードしてください。
「Malformed percent-encoding」(不正なパーセントエンコーディング)とはどういう意味ですか?
% の後には 2 桁の 16 進数が続き、隣接するエスケープと合わせて正しい UTF-8 になる必要があります。単独の % や、%E2%82 のように途中で切れたマルチバイト列はデコードできません。