java的web开发中URLEncoder.encode方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java的web开发中URLEncoder.encode⽅法

⼀:我们先看2个编码的情况

String name=.URLEncoder.encode("测试", "UTF-8");

System.out.println(name);

name=.URLEncoder.encode(name,"UTF-8");

System.out.println(name);

name=.URLDecoder.decode(name, "UTF-8");

System.out.println(name);

System.out.println(.URLDecoder.decode(name, "UTF-8"));

输出结果是

%E6%B5%8B%E8%AF%95

%25E6%25B5%258B%25E8%25AF%2595

%E6%B5%8B%E8%AF%95

测试

⼆;我们来看编码⼀次,提交给服务器的结果

我们吧“测试”编码⼀次的字符串%E6%B5%8B%E8%AF%95 ,提交,服务器端⽤request.getParameter("name")的到参数,然后我们解码

System.out.println(.URLDecoder.decode(name, "UTF-8"));

我们发现得到的结果 è? 显⽰乱码。

因为在request.getParameter("name")之前会⾃动做⼀次解码的⼯作,⽽且是默认的ISO-8859-1,相当于调⽤了⼀次

.URLDecoder.decode(name, "ISO-8859-1")

所以我们再⽤URLDecoder.decode(name, "UTF-8")就是乱码了。

三:我们在看编码2次,提交给服务器的结果

编码2次的字符串是%25E6%25B5%258B%25E8%25AF%2595 ,服务器端⽤request.getParameter("name")的到参数,⾃动按ISO-8859-1解码得到的串是%E6%B5%8B%E8%AF%95 ,也就是编码⼀次得到的字符串。

然后,我们在System.out.println(.URLDecoder.decode(name, "UTF-8"));解码输出,得到的结果就是 “测试” 2个汉字。

相关文档
最新文档