spring mvc 框架URL接收中文参数的乱码解决方案
后台可能就会出现乱码,具体解决方案如下:
一、
配置tomcat目录下的service.xml文件
tomcat7/conf/server.xml
给该行代码加上 URIEncoding="UTF-8" 的编码属性
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
这样配置后,tomcat接收url请求后就会以utf-8解码传递的中文参数,也就能解决乱码问题
二、
在controller接收参数时,对参数进行转码
@RequestMapping(value="/{tag}") public String getArticleListByTag(HttpServletRequest request, @PathVariable String tag, QueryCondition queryCondition) throws Exception{ tag = new String(tag.getBytes("ISO-8859-1"), "UTF-8"); logger.info("tag: " + tag ); }
这样的话,后台接收中文参数后就会将ISO-8859-1的编码格式转码为UTF-8形式,也能解决乱码问题。
总结:
其实乱码问题出现的原因,就是由于默认的tomcat配置,接收请求是以ISO-8859-1来转码,导致中文出现了乱码问题,只要能正确的以utf-8来转码,则可以解决乱码问题。
Face your past without regret. Handle your present with confidence.Prepare for future without fear. keep the faith and drop the fear.
面对过去无怨无悔,把握现在充满信心,备战未来无所畏惧。保持信念,克服恐惧!一点一滴的积累,一点一滴的沉淀,学技术需要不断的积淀!