http://localhost:9000/space testURL を Web ブラウザーのアドレス バーに入力すると、サーバーが呼び出されますhttp://localhost:9000/space%20test。
http://localhost:9000/specÁÉÍtestにもエンコードされhttp://localhost:9000/spec%C3%81%C3%89%C3%8Dtestます。
エンコードされた URL をアドレス バーに配置した場合 (つまりhttp://localhost:9000/space%20testとhttp://localhost:9000/spec%C3%81%C3%89%C3%8Dtest)、それらは同じままです (二重にエンコードされることはありません)。
このエンコーディングを行う Java API またはライブラリはありますか? URL はユーザーからのものであるため、エンコードされているかどうかはわかりません。
(入力文字列を検索し、見つからない場合はエンコードするだけで十分ではないか%、またはこれが機能しない特別なケースはありますか?)
編集:
URLEncoder.encode("space%20test", "UTF-8")二重にエンコードspace%2520testされているため、これは私が望むものではありません。
編集2:
さらに、ブラウザは、 などhttp://localhost:9000/specÁÉ%C3%8Dtestの部分的にエンコードされた URL を二重エンコードせずに処理します。この場合、サーバーは次の URL を受け取ります: http://localhost:9000/spec%C3%81%C3%89%C3%8Dtest. のエンコード形式と同じです...specÁÉÍtest。