+ と %20 で書いた空白は同じ値

検索語の空白を + で書いたアドレスと %20 で書いたアドレスが、同じ値として読まれて 1 つになる境界の例です。クエリの読み書きの規則を確かめられます。

入力

アドレスの一覧(1 行に 1 つ)

https://example.com/s?q=a+b
https://example.com/s?q=a%20b

クエリ(? 以降)をパラメータ名の順に並べ替える

はい

パスの末尾のスラッシュ

そのまま(違いを警告する)

# 以降(フラグメント)

残す

結果

エラー 0 件・警告 1 件・情報 0 件

指摘(エラー・警告・情報)

  • 警告 1 行目 2 件が同じアドレス https://example.com/s?q=a+b に正規化されます(1 行目・2 行目)。書き方の違いだけで同じ場所を指しているので、1 つに統一してください(RFC 3986 6.2)。
アドレスの数2 件
正規化後の種類1 種類(同じになって減る数: 1 件)
正規化できなかった行0 件
クエリだけ違うグループ0 組
大文字小文字だけ違うグループ0 組

正規化したアドレスの一覧

正規化したアドレスの一覧
行元のアドレス正規化後のアドレス
1https://example.com/s?q=a+bhttps://example.com/s?q=a+b
2https://example.com/s?q=a%20bhttps://example.com/s?q=a+b

検算(この結果になる理由)

WHATWG URL 5.1 では + を空白に直してから %エンコードを戻すため、どちらも値は「a b」です。5.2 の書き出しで空白は + になるので、2 行とも ?q=a+b に揃い、同じアドレスになる警告が 1 件です。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 正規化後のアドレスは書き方の整理であり、実際のリダイレクトや canonical の設定は別に確認してください。
  • 大量のアドレスを貼り付けると、お使いの端末の性能によって処理に時間がかかることがあります。

ほかの入力例