前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java的web开发中URLEncoder.encode方法

java的web开发中URLEncoder.encode方法

作者头像
全栈程序员站长
发布2022-07-02 14:22:33
6230
发布2022-07-02 14:22:33
举报

大家好,又见面了,我是你们的朋友全栈君。

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

String name=java.net.URLEncoder.encode(“测试”, “UTF-8”); System.out.println(name); name=java.net.URLEncoder.encode(name,”UTF-8″); System.out.println(name); name=java.net.URLDecoder.decode(name, “UTF-8”); System.out.println(name); System.out.println(java.net.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(java.net.URLDecoder.decode(name, “UTF-8”));

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

因为在request.getParameter(“name”)之前会自动做一次解码的工作,而且是默认的ISO-8859-1,相当于调用了一次java.net.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(java.net.URLDecoder.decode(name, “UTF-8”));解码输出,得到的结果就是 “测试” 2个汉字。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148030.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档