今天同事叫我处理Myeclipse控制台的打印信息中文乱码的问题,想一下,其实这个问题冲开始用Myeclipse时,就碰到这个问题的了,只是一直都没有认真地想过怎样解决,人就是这样,不到最后关头,都愿意动一下的,坏习惯。
关于这个问题,可以分析一下,中文乱码往往是由于编码不一致导致的,jboss的日志文件用EditPlus打开,是没有乱码的,只是在Myeclipse中的控制台显示为中文乱码,这样可以判断出,就是jboss日志文件的编码与Myeclipse中的控制台的 编码不一致了。
查看Myeclipse控制台编码:
实践过后,觉得每个应用服务器对应的Myeclipse的控制台应该是不同的。
window-->preferences
这里可以查看到jboss的日志在Myeclipse控制台显示时的编码。
解决方法有两个:
1、将上面第二张图的编码选择utf-8(我们都是用utf-8的)
这种方法治标不治本,很麻烦,因为每次启动时,都需要设置,关闭服务器后,这里又恢复了gbk了,找不到怎样永久地将他设为utf-8.
第二种方法:
这个方法是突然想起的,既然改不了Myeclipse的,那就改jboss呗,就这样,被我找出来了。
修改JBOSSHOME/server/default/conf/的jboss-log4j.xml
具体:
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<param name="Encoding" value="UTF-8"/>
在CONSOLE这个appender中(我的文件是第71行),将UTF-8改为GBK即可。
到此为止,问题得到解决。朦胧中觉得,Myeclipse启动jboss,貌似不调用jboss本身的run.bat、run.conf文件。