在使用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"/>
在使用HttpClient进行URL传参时遇到中文乱码问题,解决方法是在前端进行两次URLDecoder.decode()解码操作。
884

被折叠的 条评论
为什么被折叠?



