您的位置:首页 > 理论基础 > 计算机网络

httpClient java.net.URLEncoder.encode二次转码问题

2016-10-22 21:33 405 查看
在使用URL传参时,如果是中文会出现乱码问题

所以使用java.net.URLEncoder.decode()和java.net.URLDecoder.decode(),的时候需要在前端页面中使用两次java.net.URLDecoder.decode()方法。

代码如下:

<shiro:hasPermission name="res:schoolCurriculum:edit">
<a href="#" onclick="openDialogView('查看XXX设置', '${ctx}/res/schoolCurriculum/form?id=${sclist.id}&grade=${sclist.grade}&schoolClass=${sclist.schoolClass}&course=${sclist.course}&isEditOrAdd=0','60%', '70%')" class="btn btn-success btn-xs" ><i class="fa fa-edit"></i> 查看</a>
</shiro:hasPermission>
后台代码:

//班级转码
String sClass = URLEncoder.encode(schoolClass, "UTF-8"); //一次转码 (获取的是:%E6%B5%8B%E8%AF%95)
String schoolClass2 = URLDecoder.decode(sClass, "UTF-8");//二次转码(获取为 中文)
model.addAttribute("schoolClass2", schoolClass2);
//年级转码
String gra = URLEncoder.encode(grade, "UTF-8"); //一次转码 (获取的是:%E6%B5%8B%E8%AF%95)
String grade2 = URLDecoder.decode(gra, "UTF-8");//二次转码(获取为 中文)
//科目转码
String cou = URLEncoder.encode(course, "UTF-8"); //一次转码 (获取的是:%E6%B5%8B%E8%AF%95)
String course2 = URLDecoder.decode(cou, "UTF-8");//二次转码(获取为 中文)
model.addAttribute("course2", course2);

页面显示出现乱码,tomcat,server.xml中加解决乱码的方法:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
IEncoding="utf-8"
URIEncoding="utf-8"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐