支付宝即时到账,传参乱码.

时间:2021-01-22 03:22:13

被郁闷了,支付宝即时转账,只能通过form 方式传参。然后,在本地的时候中文是ok 的但是一到传送到支付宝的时候就一直验签报错。

我问过支付宝的技术客服,确定 md5.sign()支持 汉字。 那问题就局限在传参的时候了。

然而不管我怎么设置,都没有办法解决乱码:

如下:

    response.setHeader("Cache-Control", "no-cache");
               response.setCharacterEncoding("utf-8");
               response.setContentType("text/html;charset=utf-8");



最后通过这篇文章(http://blog.csdn.net/hengyunabc/article/details/17056237)解决了问题,主要内容如下:

tomcat里一劳永逸解决乱码问题

要想在tomcat中一劳永逸解决乱码问题,可以这样做:

1.设置tomcat,conf/server.xml文件中,useBodyEncodingForURI="true":

[html] view plain copy
  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.            connectionTimeout="20000"   
  3.            redirectPort="8443" useBodyEncodingForURI="true"/>  
2.增加一个filter:
[java] view plain copy
  1. public class CodeFilter implements Filter {  
  2.     @Override  
  3.     public void init(FilterConfig filterConfig) throws ServletException {     
  4.     }  
  5.     @Override  
  6.     public void doFilter(ServletRequest request, ServletResponse response,  
  7.             FilterChain chain) throws IOException, ServletException {  
  8.         request.setCharacterEncoding("utf-8");  
  9.         response.setCharacterEncoding("utf-8");  
  10.         chain.doFilter(request, response);  
  11.     }  
  12.     @Override  
  13.     public void destroy() {   
  14.     }  
  15. }  
3.在web.xml中配置filter:
[html] view plain copy
  1. <filter>  
  2.     <filter-name>CodeFilter</filter-name>  
  3.     <filter-class>com.leg.filter.CodeFilter</filter-class>  
  4. </filter>  
  5.   
  6. <filter-mapping>  
  7.     <filter-name>CodeFilter</filter-name>  
  8.     <url-pattern>*</url-pattern>  
  9. </filter-mapping> 
附上 支付宝接受异步返回的代码: http://xiongjiajia.iteye.com/blog/1327567   非常详尽。。。踩着巨人的肩膀啊。。。