由apache整合tomcat调用支付宝(alipay)在linux服务器上引发的乱码大战

本来一个东西乱码就很折磨人了,这几样东西加在一起。。我觉得我能挺过来就很牛了。闲话不说了,记一个流水帐(按照时间顺序):

1、在开发机器上使用alipay的gbk开发包版本,一切没问题;

2、把完成的程序放在linux(cent 5.3)上,连支付宝的支付页面都打不开,出现ILLEGAL_SIGN错误;

3、第一次疯了。估计是字符集问题,于是改用utf-8版本的接口,解决,能打开支付页面了;

4、支付完了以后,返回的页面没有sign加密测试未通过,还是乱码,找了n个小时,最终发现使用了org.springframework.web.filter.CharacterEncodingFilter,都encode成gbk了,于是修改为utf-8;

5、然后发现很多地方要改,比较难想到的是:css和style文件,要在eclipse里面重新编码成utf-8,其中的中文才可以使用;

6、终于能显示了,随后发现,使用直接tomcat正常,但是通过apache转发又是乱码(导致sign验证不通过),找了n多解决办法,都是说:增加URIEncoding="UTF-8"在aj13的connecter里面,增加了以后仍然不行;

7、最终发现,在<connecter下面配置了一个useBodyEncodingForURI=true,猛然想到:谁知道alipay平台的“browser”以什么编码发送啊?!于是改成false;

8、终于成功。

 

继续测试了一下,发现:

1、可以不修改apache httpd.conf里面的AddDefaultCharset,是什么都可以,用默认的iso-8859-1挺好;

2、可以不修改<connecter,增加URIEncoding="UTF-8",什么都不加表示用iso-8859-1,正好和apache的配上;

3、可以不修改linux的LANG;

 

愿看到这个文章的哥们别走弯路了。

还配不出来的话,贴上来我帮你分析分析!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值