我正在使用java的URLEncoder来获取用户提供的字符串并创建一个可以安全用于文件名的字符串。我想知道是否有可能将两个不同的字符串编码为相同的值。
例如,如果一个字符串是“ABC%20D”但由于%用作替换特殊字符的字符,那么“ABC D”和“ABC%20D”之类的内容可能最终都是相同的编码值?或者编码器是否总是将%等字符替换为其他字符?
答案 0 :(得分:2)
似乎使用您的示例输入编码转义字符:
String result = URLEncoder.encode("ABC%20D", "UTF-8");
System.out.println(result); //prints ABC%2520D