java类中打印信息乱码?

今天碰到的问题,又让自己长了个记性。

由于这几天在维护其它地方的项目,所以之前在做的项目就停了几天,今天准备接着做,打开、布署、运行,在调用组织机构树时,第一行居然是乱码,其它都是正常的,很奇怪,因为之前这个项目一直是正常的,虽然项目在刚开始做的时候为了乱码的问题搞了很长时间,但终究都解决了,而且也一直没出现过什么问题。

没想到是什么问题,我觉得可能是tomcat里的缓存问题吧,就是项目删除再重新布署一遍再运行,但运行结果依旧,这时我发现在后台打印的调试信息也是乱码,这就很奇怪了,因为打印的信息只是一段字符串,并不是从前台取的值,而且前台的添加,修改等操作并没有乱码,但只要是java类中返回的字符串,都出现了乱码,比如在后台stu.setName="张三",

到前台取值就出现了乱码,从数据库中取的值都是正常的。这时我觉得问题出现在java文件的编码上,我把某个java类的编码从gbk改成了utf-8,这时再调试时发现,这个类里打印的信息就是正常的了,但是之前为什么是正常的呢,我也不可能把所有的java文件编码改成utf-8吧,难道是class文件与java文件的编码不一致造成的?

再调试,把项目clear,重新编译、重新发布 ,问题解决。

这时我想起了之前的项目有的是UTF-8编码,所以我在myeclipse中把java文件的编码设置成了utf-8,后来虽然又改回来了,但我有个习惯就是把不用的项目都close掉,要用时才会打开,我想应该是后来在改回编码时,由于项目被close了,所以编译后文件的编码并没有被改回来,还是UTF-8,但这时java文件的编码又是GBK,所以在类中出现的汉字都变成了乱码。

总结:当java类中打印普通的信息时出现乱码,而获取的前台值是正常的,这时应该考虑是不是java文件的编码和class文件的编码不一致造成的,解决方法:将项目clear后,重新发布。

此问题的解决得益于http://1035054540-qq-com.iteye.com/blog/1856060这篇博客



就是这张图让我想到了问题的所在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值