2012-04-12 12 views
0

Ich benutze Java URLEncoder, um einen Benutzer bereitgestellten Zeichenfolge und erstellen Sie eine Zeichenfolge, die für Dateinamen sicher zu verwenden ist. Ich frage mich, ob es möglich ist, dass zwei verschiedene Strings auf denselben Wert codiert werden.Ist es möglich, eine Namenskollision mit URLEncoder

Wenn beispielsweise eine Zeichenfolge "ABC% 20D" ist, aber% als Zeichen zum Ersetzen von Sonderzeichen verwendet wird, ist es möglich, dass etwas wie "ABC D" und "ABC% 20D" identisch sind kodierter Wert? Oder ersetzt der Encoder Zeichen wie% immer durch etwas anderes?

+0

Die Tatsache, dass Sie dies fragen sollten läuten die Alarmglocken im Kopf beginnen ... – Blindy

+0

Nicht einen konstruktiven Kommentar, aber dank. –

Antwort

2

Es scheint Eingabe von Escape-Zeichen mit Ihrem Beispiel zu kodieren:

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

Richtig, ich sah das für dieses spezielle Beispiel. Ich wusste nur nicht, ob es möglich war, eine Kollision zu haben oder ob es allgemein so konstruiert ist, dass Kollisionen nicht passieren. –

Verwandte Themen