「URLEncoder」がスペースを「 」ではなく「 」としてエンコードするのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-11 16:35:03
オリジナル
1003 人が閲覧しました

Why Does `URLEncoder` Encode Spaces as

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート