サーバーへの http-get リクエストを実行するときにまだ理解できないのは、JS 関数の encodeURIcomponent を使用して http-get の各コンポーネントをエンコードすることの利点です。
サーバーが(PHPを使用して)見たいくつかのテストを実行すると、encodeURIcomponentを使用しない場合でも、http-getリクエストの値が適切に取得されます。 明らかに、クライアント レベルで特殊文字 & ? をエンコードする必要があります。= / : そうしないと、この "peace&love=virtue" のような http-get 値は、1 つの値ではなく、http-get リクエストの新しいキーと値のペアと見なされます。しかし、encodeURIcompenent は、たとえば 'è' などの他の多くの文字もエンコードするのはなぜですか。これは、utf8_decode 関数を使用して PHP サーバーでデコードする必要がある %C3%A8 に変換されます。
encodeURIcomponent を使用することで、http-get リクエストのすべての値が utf8 でエンコードされるため、PHP でそれらを取得するときに、毎回 $_GET 値ごとに utf8_decode 関数を呼び出さなければならず、これは非常に面倒です。
& だけをエンコードできないのはなぜですか? = / : 文字?
参照: JS encodeURIComponent の結果が FORM によって作成された結果と異なる 単純なブラウザの FORM GET が「€」などの文字を別の方法でエンコードするため、encodeURIComponent が正しくエンコードされていないことも示されています。それで、このencodeURIComponentは何のためにあるのだろうか?