最近在做毕设的时候有用到url传递中文参数,结果在后台接收参数的时候,出现了乱码现象。
例如:
jsp页面
<a href="${pageContext.request.contextPath}/category?cate=数码">数码</a>
后台接收(用的是IDEA)
@RequestMapping("/category")
public String getCateGoods(String cate) {}
结果cate显示乱码,各种编码集都显示没问题,都是UTF-8,那么,是哪里出问题了呢?
原因是:Tomcat默认使用ISO-8859-1编码,而项目一般使用utf-8或者gbk,因此如果页面通过URL传参,而参数又含有中文的话,需要做一下转换。
1、增加一行格式转换的代码:String cate=new String(cate.getBytes(“ISO-8859-1”), “utf-8”);
2、修改Tomcat的Server.xml,在Connector标签中加上URLEncoding参数:
<Connector port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="99" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"/>