クエリ文字列の分解・組み立て

URLのパラメータを1行ずつに分解し、編集してURLへ戻します。重複キーもそのまま扱います。

URL かクエリ文字列を貼り付けてください。

分解した内容(編集できます)

補足

  • パラメータの順序と重複キーはそのまま保ちます (tag=a&tag=b は 2 行になり、組み立て直しても 2 つのまま残ります)。 重複していれば注意書きを出しますが、勝手に 1 つへまとめることはしません。
  • 値の + は空白として復元します(application/x-www-form-urlencoded の決まり)。組み立てるときは空白を %20 にします。
  • %zz のように復元できない部分があっても、その行だけを 「書かれていたまま」にします。全体を失敗にすると、どのパラメータが原因か分かりません。
  • 値の中に = があっても、最初の = だけでキーと値に分けます。 値の改行は 1 行に収めるため \n と表示し、組み立て時に改行へ戻します。 取り違えないよう、元からある \ は \\、キーの中の = は \= と表示します。
  • ? の無い a=1&b=2 だけを貼っても分解できます。 = も & も無ければ URL とみなし、パスをキーにはしません。
  • 組み立てでは !'()* もパーセントエンコードします (encodeURIComponent は素通ししますが、クエリで意味を持つ実装があるためです)。

よくある質問

同じキーが複数あるクエリ文字列も扱えますか?

扱えます。tag=a&tag=b は2行に分解され、組み立て直しても2つのまま残ります。重複があれば注意書きを出しますが、勝手に1つへまとめることはしません。パラメータの順序もそのまま保ちます。

値の + は半角スペースに戻りますか?

戻ります。application/x-www-form-urlencoded の決まりに従い、分解するときの + は空白として復元します。組み立てるときは空白を %20 にします。

壊れたパーセントエンコードがあると全部失敗しますか?

失敗しません。%zz のように復元できない部分があっても、その行だけを「書かれていたまま」にします。全体を失敗にすると、どのパラメータが原因か分からなくなるためです。

? が無い a=1&b=2 だけでも分解できますか?

できます。クエリ文字列の断片だけを貼り付けても分解します。= も & も無い場合はURLとみなし、パスをキーとして扱うことはしません。

↑↓ 移動 / Enter 開く / Esc 閉じる