Query String Parser
入力値の整形・変換・判定をブラウザ内で実行します。入力はサーバーへ送信しません。形式差分の一次切り分けに使えます。
状態
ブラウザ内で処理します。入力はサーバーへ送信しません。まずはここで一次切り分けしてください。
使い方
URLまたはクエリ文字列を貼り付けて「解析」。必要に応じて「+ をスペース扱い」を切り替えて差分を確認します。
注意(このツール)
- URL全体を貼り付けた場合は「?」以降のみを解析します。フラグメント(#以降)は対象外です。
- 重複キーの採用規則(先頭/末尾/配列)はサーバー実装に依存します。
このページについて
何をするツール?
URLや「?」以降のクエリ文字列を解析し、キーと値を一覧で表示します。
重複キー(例:a=1&a=2)やエンコード文字も確認できます。
URLエンコード自体の説明は URL Encode/Decode に寄せ、このページでは「クエリ特有の落とし穴(+/%20、重複キー、二重エンコード)」を中心に扱います。
+ と %20(スペース問題)
クエリ文字列では、文脈によって「+」がスペースとして扱われる場合があります(application/x-www-form-urlencoded など)。一方、%20 はパーセントエンコードの空白です。
このツールは「+ をスペースとして扱う」オプションで両方の見え方を比較できます。
重複キー(a=1&a=2)
クエリでは同じキーが複数回出現することがあります(チェックボックス、配列表現など)。サーバ側の解釈(最初/最後/配列)やフレームワークの仕様で扱いが変わる点に注意してください。
切り分け手順(おすすめ)
- まず元URLをそのまま貼ってキー一覧を確認
- 想定と違う値がある場合は + as space を切り替えて再解析
- 同名キーが複数あるかを確認し、バックエンド仕様と照合
- 必要なら URL Encode/Decode で1段ずつ復元して二重エンコードを確認
推奨(実務)
- クエリ設計時は同名キーの扱い(配列/先頭/末尾)をAPI仕様に明記する
- 値に区切り文字が入る場合は必ず値単位でエンコードする
- 運用ログには元URLとデコード済み値の両方を残す
二重エンコード(%2520 など)
- %25 は「%」のエンコードです。%2520 は「%20」がさらにエンコードされた形です。
- 疑ったら 1回ずつデコードして意味が通るか確認します(やり過ぎると壊れます)。
よくある失敗
- URL全体を2回連結して ? が複数入り、想定外の解釈になる
- 空値(a=)と未指定(a)を同一視してしまう
- デコード失敗を無視して生値のまま処理し、不具合が遅延する
このツールでできること
- URL/クエリ文字列の解析
- キー・値・デコード値の表示
- 重複キーの保持
- + をスペース扱いする解釈切り替え
注意(運用)
- 同じ文字列でも文脈により解釈規則が異なります。利用先仕様を優先してください。
- 入力元での自動変換(空白、改行、URLデコード)に注意してください。
参照仕様
- RFC 3986(URI)
- WHATWG URL Standard(URLSearchParams / form-urlencoded)
- application/x-www-form-urlencoded の慣例(+ が空白になる場合)
FAQ
+ はスペースになりますか?
このツールでは「+ をスペースに変換する」オプションを用意しています。用途に合わせて切り替えてください。
値に & や = が入っているとどうなりますか?
& や = は区切りとして解釈されるため、値に入れたい場合は事前にエンコードが必要です。
a= と a は同じですか?
実装次第で扱いが異なる場合があります。API仕様上は区別するかどうかを明記するのが安全です。
重複キーはどれが採用されますか?
このツールは順序を保持して表示します。最終採用値はサーバーやフレームワーク実装(先頭/末尾/配列)に依存します。
参考リンク
次に見る(診断順)
site_map ルールに基づいて、次に確認すべきページを表示しています。
- UTM Builder — UTMパラメータ付きURLを生成
- URL Encode/Decode — URLエンコード/デコードを相互変換
- 文字数カウント — 改行・全角/半角を含む文字数を計測
- Base64 — Base64 エンコード/デコード(UTF-8)
Example
https://example.com/?a=1&a=2&q=hello%20world
q=hello+world(+ as space)
q=%2520(double-encoding)