2012-04-12 51 views
0

我正在使用java的URLEncoder來接收用戶提供的字符串並創建一個可安全用於文件名的字符串。我想知道的是,有可能將兩個不同的字符串編碼爲相同的值。是否有可能與URLEncoder產生名稱衝突

例如,如果一個字符串是「ABC%20D」,但由於%被用作替換特殊字符的字符,所以像「ABC D」和「ABC%20D」這樣的東西都可能結束編碼值?或者,編碼器是否會將其他字符替換爲%?

+0

你問這個應該開始在你的心中響起了警鐘,這一事實... – Blindy 2012-04-12 21:08:26

+0

不是建設性的意見,但感謝。 – 2012-04-12 21:11:16

回答

2

似乎使用例如輸入編碼轉義字符:

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

對,我看到了這個特殊的例子。我只是不知道是否有可能發生碰撞,或者是否通常是爲了避免碰撞而設計的。 – 2012-04-12 21:00:49