ホームページ  >  記事  >  Java  >  URLEncoder がスペースを「 」ではなく「 」としてエンコードするのはなぜですか?

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

DDD
DDDオリジナル
2024-11-11 06:47:02801ブラウズ

Why Does URLEncoder Encode Spaces as ' ' Instead of ' '?

URLEncoder の難題: スペース文字のエンコーディングについて

URLEncoder を使用して文字列をエンコードしようとすると、スペースが代わりに ' ' 記号に変換されるという予期しない動作が発生する可能性があります。予期された ' ' 16 進コードです。

原因

URLEncoder クラスは、HTML フォームで URL をエンコードするための HTML 仕様に準拠しています。これらの仕様に従って、application/x-www-form-urlencoded MIME 形式のパラメータではスペースを「 」記号に置き換える必要があります。

解決策

スペースが変換される望ましいエンコーディングを実現するには' ' に変換するには、次の手順を実行できます。

String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8");
encodedString = encodedString.replace("+", "%20");

これにより、すべての ' ' シンボルが ' ' に置き換えられ、期待どおりの正しいエンコードが得られます。

以上がURLEncoder がスペースを「 」ではなく「 」としてエンコードするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。