0
我正在使用java的URLEncoder来接收用户提供的字符串并创建一个可安全用于文件名的字符串。我想知道的是,有可能将两个不同的字符串编码为相同的值。是否有可能与URLEncoder产生名称冲突
例如,如果一个字符串是“ABC%20D”,但由于%被用作替换特殊字符的字符,所以像“ABC D”和“ABC%20D”这样的东西都可能结束编码值?或者,编码器是否会将其他字符替换为%?
我正在使用java的URLEncoder来接收用户提供的字符串并创建一个可安全用于文件名的字符串。我想知道的是,有可能将两个不同的字符串编码为相同的值。是否有可能与URLEncoder产生名称冲突
例如,如果一个字符串是“ABC%20D”,但由于%被用作替换特殊字符的字符,所以像“ABC D”和“ABC%20D”这样的东西都可能结束编码值?或者,编码器是否会将其他字符替换为%?
似乎使用例如输入编码转义字符:
String result = URLEncoder.encode("ABC%20D", "UTF-8");
System.out.println(result); //prints ABC%2520D
对,我看到了这个特殊的例子。我只是不知道是否有可能发生碰撞,或者是否通常是为了避免碰撞而设计的。 – 2012-04-12 21:00:49
你问这个应该开始在你的心中响起了警钟,这一事实... – Blindy 2012-04-12 21:08:26
不是建设性的意见,但感谢。 – 2012-04-12 21:11:16