URL クエリ文字列で使用できる文字は?
クエリ文字列は特定の形式に従う必要がありますか?
https://www.rfc-editor.org/rfc/rfc3986ごと
セクション 2.2 予約文字では、次の文字がリストされています。
予約済み = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" /「#」/「[」/「]」/「@」</p>
サブデリム = 「!」/「$」/「&」/「'」/「(」/「)」/「*」/「+」/「,」/「;」/「=」</p>
仕様は次のように述べています。
URI コンポーネントのデータが区切り文字としての予約文字の目的と競合する場合、URI を形成する前に、競合するデータをパーセントでエンコードする必要があります。
次に、セクション 2.3 予約されていない文字には、次のものがリストされています。
未予約 = ALPHA / DIGIT / "-" / "." /「_」/「〜」</p>
ウィキペディアに答えがあります: http://en.wikipedia.org/wiki/Query_string
" URL エンコーディング:一部の文字を URL の一部にすることはできません (スペースなど)。その他の一部の文字は、URL で特別な意味を持ちます。たとえば、文字 # を使用して、ドキュメント; 文字 = は、名前と値を区切るために使用されます. これらの制約を満たすために、クエリ文字列を変換する必要がある場合があります. これは、URL エンコーディングと呼ばれるスキーマを使用して行うことができます.
特に、クエリ文字列のエンコードでは、次の規則が使用されます。
チルダ ("~") 文字に対応するオクテットは、多くの場合、古い URI 処理の実装によって "%7E" としてエンコードされます。「%7E」は、その解釈を変更せずに「~」に置き換えることができます。「+」としての SPACE のエンコーディングと「そのままの」文字の選択は、このエンコーディングを RFC 1738 と区別します。」
形式に関しては、クエリ文字列は名前と値のペアです。? クエリ文字列を URL から分離します。名前と値の各ペアはアンパサンド (&) で区切られ、名前 (キー) と値は等号 (=) で区切られます。例えば。http://domain.com?key=value&secondkey=secondvalue
私が提供したウィキペディア参照の構造の下で: