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

在使用HttpClient进行URL传参时遇到中文乱码问题,解决方法是在前端进行两次URLDecoder.decode()解码操作。

在使用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"/>


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值