问题描述
通讯:客户端将上行通过des加密,秘钥url挂参传输。服务器接收到客户端的上行进行解密,不论中英文都是正常的。然后,服务器将下行des加密,响应到客户端,客户端解密之后就出现中文乱码。(不存在秘钥不正确之说)response响应时:response.setContentType("text/html;charset=UTF-8");response.setCharacterEncoding("utf-8");debug调试 response.getWriter(); 的编码格式也是utf-8.在客户端接收到输入流,得到的编码格式也是utf-8,读取出来得到的字符串与服务器加密得到的字符串是一致的,但是客户端解密之后,就会出现中文乱码。谢谢各位大牛。小弟拜谢!
解决方案
(1)是先加密然后才返回到客户端,加密后的串中应该就没有中文的吧?所以怀疑乱码和服务器响应没有关系;(2)java api中提供的des加解密,都是对byte进行的转换,那么在加密前把字符串装换为byte的编码字符集和解密时是否一致呢?是不是可以看看客户端解密出来的byte数组和服务端的是否一致
解决方案二:
什么服务器? tomcat 修改下URLEncoding
解决方案三:
sbb.toString()没乱码?下面响应数据是2,那里乱码?
时间: 2024-10-02 12:37:22