2012-04-12 10 views
0

私はjavaのURLEncoderを使用してユーザー提供の文字列を取得し、ファイル名に使用するのに安全な文字列を作成しています。 2つの異なる文字列を同じ値にエンコードすることは可能でしょうか?URLEncoderとの名前の衝突が可能ですか

たとえば、ある文字列が「ABC%20D」で、%が特殊文字を置き換える文字として使用されている場合、「ABC D」と「ABC%20D」の両方が同じものになる可能性がありますコード化された値?あるいは、エンコーダは%のような文字を常に他のものに置き換えますか?

+0

あなたがこれを求めているという事実は、あなたの心の中で警鐘を鳴らし始めるべきである... – Blindy

+0

ない建設的なコメントが、感謝します。 –

答えて

2

あなたの例の入力を使用してエスケープ文字をエンコードするようだ:

String result = URLEncoder.encode("ABC%20D", "UTF-8"); 
System.out.println(result); //prints ABC%2520D 
+0

そうですね、私はこの特定の例でそれを見ました。私はちょうどそれが衝突を起こすことが可能かどうか、またはそれらの衝突が起こらないように一般的に設計されているかどうかは分かりませんでした。 –

関連する問題