0

spaceString を受け取り、 aを に変換する Java コードがいくつかあります+。しかし、私のプログラムがその String を読み取ると、 が に変換+され%20ます。

次のように一貫性を保つ方法はありますか?

  1. spaceストレートをに変換するか%20、OR
  2. t convert the+ to% 20`

私のコードは次のようになります。

import java.net.URLEncoder;
...
String fileNameEncoded = URLEncoder.encode(filename);

もしそうなら、最初のパスは私に与えfilename、2番目のパスは私に与えます。foo bar.htmlfoo+bar.htmlfoo%20bar.html

4

1 に答える 1

2

「%20 までのスペース」を理解するには、最初に URL をエンコードする理由を理解する必要があります。その答えは、「&」、「=」、「」などの URL 形式で許可されていない文字が URL に含まれているためです。 URL の解析ミスの原因となるためです。そのため、URLEncoder はこれらの文字を、URL 形式で許可されている従来の他の文字に置き換えます。そして、URL パーサーがこれらの従来の文字をシーズすると、「&」、「=」、「」などに置き換えられます。

于 2013-03-11T21:03:11.697 に答える