URLEncoder と HTML フォーム URL エンコーディングの違い
java.net.URLEncoder を使用してスペース文字を含む文字列をエンコードしようとすると、予期せぬ結果に気づくかもしれません。出力は予期された「Hello World」形式に従っておらず、代わりに「Hello World」が生成されます。これは、URLEncoder の動作と HTML フォームの URL エンコードとの間の微妙な違いに起因します。
URLEncoder は、HTML フォームの URL をエンコードするための HTML 仕様に従って動作します。 HTML 仕様に従って、コントロールの名前と値は、「 」ではなく「 」記号を使用してスペース文字をエスケープする必要があります。
ただし、要件によっては、スペース文字を特に「 」としてエンコードする必要がある場合があります。これを実現するには、エンコードされた文字列に対して簡単な置換操作を実行できます。
String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8"); String correctedString = encodedString.replace("+", "%20");
この修正により、" " 記号が " " に置き換えられ、目的の "Hello World" 形式が得られます。
以上が「URLEncoder」がスペースを「 」ではなく「 」としてエンコードするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。