热门关键字:
jquery > jquery教程 > java > 解决SpringMVC中redirect传参数中文乱码问题

解决SpringMVC中redirect传参数中文乱码问题

1742
作者:管理员
发布时间:2016/1/3 15:02:49
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=730

解决SpringMVC中redirect传参数中文乱码问题


最近写了一个公司的微信授权通用接口,功能实现了之后却遇到头痛的乱码问题,主要在springMVC的controller中的redirect重定向环节,微信授权登录之后会把微信用户的昵称,openId,性别,头像,国家,省份,城市等用户信息组装成参数传给接口回调地址如:http://www.***.com/getWeixinInfo.do?url=http%3A%2F%2Fh5.bbt123.cn%2Fdemo.jsp,授权后会重定位到传过来的url,url要java.net.URLEncoder.encode进行编码。

最终解决方案如下:

1、因为参数是通过URL参数提交的,所以在%TOMCAT_HOME%/congf/server.xml中的标签,加入了URIEncoding="UTF-8"属性。

2、修改web.xml的编码过滤进行强制转码,如下:

<!-- 编码转换 -->
  <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value><!-- 强制进行转码 -->
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
3、中文参数在传之前要java.net.URLEncoder.encode进行编码

4、接收中文参数的时候要java.net.URLDecoder.decode进行解码,jsp中el表达式直接用{param.参数名}即可


希望分享这篇文章对大家有所帮助。。。。





如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:css
友荐云推荐