在做银行支付接口案例的时候,遇到的编码问题!

在银行支付接口开发中遇到编码问题,主要涉及到Tomcat容器的ISO8859-1编码与UTF-8编码冲突。中文字符在传输过程中导致长度变长和乱码。解决方法包括设置请求编码,对中文参数进行ISO-8859-1解码后再用UTF-8编码,确保数据正确传输。
摘要由CSDN通过智能技术生成
    之前遇到的在加密运算的时候,传输涉及到字符,但是因为转化,其中还是有部分加密码是由汉字转化来的,但是传输中出现了问题,发现不应该用字符传输,而是应该转化成字节流再进行传输,其中就是因为ISO8859-1和UTF-8的原因;

我传递之后发现长度变长了!!!

发现,应该在传输时,杜绝字符,使用字节最为合适,特别是因为我们使用的Tomcat容器,其底层是ISO8859-1的单字节编码,而我们中文环境下使用的是UTF-8的多字节编码;

所以当我把加密后的字符内容放到jsp中的hidden  input内时,发现首尾都多出了几个空格?并且长度在trim了空格,之后依旧变长了;


同时也复习一个问题:


在servlet中获取用户参数数据:
request.getParameter("参数名")遇到参数中出现中文乱码的时候;


POST提交:
request.setCharacterEncoding("utf-8");
get提交:
手动解码:

name = new String(name.getBytes("ISO-8859-1"), "utf-8");  // 测试setCharacterEncoding同样可以

Tomcat默认的编码是ISO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值