首页 新闻 会员 周边

tomcat编译java代码的时候的乱码问题

0
[待解决问题]

最近遇到这样一个问题百思不得其姐啊,所以向各位大神请教下。

java代码是这样的:

把一段包含中文字符的字符串进行MD5加密(加密后的结果是A),然后把加密前字符串和加密后字符串都通过http post传送给客户。

客户再把这一段字符串加密(加密结果是B),然后跟我的加密结果进行比较,结果发现加密出来的东西不一样(A和B不一样)。

我注意到我tomcat后台输出的时候,输出的所有中文字符都是英文问号,比如张三变为??庆余年变为???。

然后我找了一个在线MD5加密网站,对我的字符串进行加密,如果中文字符全替换成问号那么,加密结果就是A,如果直接用这个字符串加密,加密结果就是B。

然后我果断在另一个tomcat服务器上尝试,结果那个服务器后台,可以正确输出中文,加密结果也是B。

可以确定问题出在服务器上,那么问题来了,出现在服务器哪里呢?我专门找我们的配置组的人看过,他们说两台服务器的编码设置一模一样。 我是不相信他们,肯定有哪里不一样,但是他们让我说我又说不出来,求大神解救啊!!!!!

 

DevLogic的主页 DevLogic | 菜鸟二级 | 园豆:202
提问于:2016-03-04 11:17
< >
分享
所有回答(2)
1

通过httppost传输过程中会被编码,post方式 会使用 http   body 里的编码,get方式会使用 header里的编码 ,你可以设置一下resp.setCharacterEncoding(); 设置下编码格式。 客户端 会通过  Header 里的 charset 编码解码。我是在 《深入分析java web技术内幕》第三章看的,不知道能不能解决你的问题

Mr、Bo | 园豆:198 (初学一级) | 2016-03-09 09:39
0

每一个post或者get传之前设置一下request和response的编码格式

response.setContentType("text/html;charset=UTF-8");(记得括号里的字符串隔开的是分号不是逗号!!)

request.setCharacterEncoding("utf-8");

Learner灬zzl | 园豆:202 (菜鸟二级) | 2016-03-19 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册