编码的细节带来大问题

本文记录了一次在快钱支付接口部署过程中遇到的mac错误排查过程。问题源于中文字符串在不同操作系统上的编码差异,通过指定编码方式成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天同事吧快钱支付的接口做完了,部署服到服务器,快钱一直提示mac错误,但是同事在本地调试却没问题。

一个很奇怪的问题,粗看了一下代码没什么问题。开发用的是window,部署服务器是linux,这样的问题就比较难找了。

 

只能在服务器比本地打印信息调试,刚开始怀疑md5加密的问题,但调试下来直接用一个String 加密,服务器跟本地是一样的,后来发现同事那个串里面有中文,用java.net.URLEncoder.encode(productDesc)来做了编码,看来问题就在这里,encode不加编码方式的时候默认用的机器的默认编码方式,所以本地也是gb2312没问题,linux服务器不是,所以错了,改为java.net.URLEncoder.encode(productDesc,"gb2312")解决问题。

 

一下小小的问题调试了整整一个上午,很郁闷。编码中一些细微的东西还是要注意的,有时候很难找到问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值