Urlencoding 和 toLowerCase - 对输出的影响
Urlencoding and toLowerCase - effect on output
我通过这段代码 (java),想知道下面两个在输出上是否会有任何实际差异:
字符串输出1 = (URLEncoder.encode(plainString, "UTF-8")).toLowerCase();
字符串输出2 = URLEncoder.encode(plainString.toLowerCase(), "UTF-8"));
第一个问题为什么要做小写?网址区分大小写。
回答你的问题 - 是的,会有区别。
使用 UTF-8 作为编码方案,字符串 "The string ü@foo-bar" 将被转换为 "The+string+%C3%BC%40foo-bar",因为在 UTF-8 中,字符 ü 被编码为两个字节 C3(十六进制)和 BC(十六进制) ),字符@被编码为一个字节40(十六进制)。
现在,在您的这种情况下 - (URLEncoder.encode(plainString, "UTF-8")).toLowerCase()
十六进制值将转换为小写。
考虑下面的例子:
String output1 = (URLEncoder.encode("ü@foo-Bar", "UTF-8")).toLowerCase();
String output2 = URLEncoder.encode("ü@foo-Bar".toLowerCase(), "UTF-8");
System.out.println(output1);
System.out.println(output2);
输出:
%c3%bc%40foo-bar
%C3%BC%40foo-bar
希望对您有所帮助!
结果可能不同:我用“Ü”(德语变音符号)尝试过,输出 1 是 %c3%9c
,而输出 2 是 %C3%BC
。
我通过这段代码 (java),想知道下面两个在输出上是否会有任何实际差异:
字符串输出1 = (URLEncoder.encode(plainString, "UTF-8")).toLowerCase();
字符串输出2 = URLEncoder.encode(plainString.toLowerCase(), "UTF-8"));
第一个问题为什么要做小写?网址区分大小写。
回答你的问题 - 是的,会有区别。
使用 UTF-8 作为编码方案,字符串 "The string ü@foo-bar" 将被转换为 "The+string+%C3%BC%40foo-bar",因为在 UTF-8 中,字符 ü 被编码为两个字节 C3(十六进制)和 BC(十六进制) ),字符@被编码为一个字节40(十六进制)。
现在,在您的这种情况下 - (URLEncoder.encode(plainString, "UTF-8")).toLowerCase()
十六进制值将转换为小写。
考虑下面的例子:
String output1 = (URLEncoder.encode("ü@foo-Bar", "UTF-8")).toLowerCase();
String output2 = URLEncoder.encode("ü@foo-Bar".toLowerCase(), "UTF-8");
System.out.println(output1);
System.out.println(output2);
输出:
%c3%bc%40foo-bar
%C3%BC%40foo-bar
希望对您有所帮助!
结果可能不同:我用“Ü”(德语变音符号)尝试过,输出 1 是 %c3%9c
,而输出 2 是 %C3%BC
。