今天同事吧快钱支付的接口做完了,部署服到服务器,快钱一直提示mac错误,但是同事在本地调试却没问题。
一个很奇怪的问题,粗看了一下代码没什么问题。开发用的是window,部署服务器是linux,这样的问题就比较难找了。
只能在服务器比本地打印信息调试,刚开始怀疑md5加密的问题,但调试下来直接用一个String 加密,服务器跟本地是一样的,后来发现同事那个串里面有中文,用java.net.URLEncoder.encode(productDesc)来做了编码,看来问题就在这里,encode不加编码方式的时候默认用的机器的默认编码方式,所以本地也是gb2312没问题,linux服务器不是,所以错了,改为java.net.URLEncoder.encode(productDesc,"gb2312")解决问题。
一下小小的问题调试了整整一个上午,很郁闷。编码中一些细微的东西还是要注意的,有时候很难找到问题。