关闭

liferay控制台输出乱码问题

标签: tomcatjavalog4jwindows虚拟机脚本
2625人阅读 评论(3) 收藏 举报
分类:

   近日准备开发一个基于liferay的网站,下载liferay4.3.0(基于tomcat),解压、启动运行,发现在启动控制台中有中文乱码,形如“淇℃伅: Initializing”,考虑到liferay的国际化支持非常好,其相关的java文件应该都是UTF-8编码,而且乱码是tomcat本身启动过程中显示乱码。


   控制台文本输出的编码格式是由java虚拟机的file.encoding环境变量控制,其对应的可以是UTF-8,gb2312等。准备从tomcat的启动脚本寻找答案,看看其java启动参数选项中是否有file.encoding相关的信息。打开catalina.bat,看到JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -Dfile.encoding=UTF8这样的信息,就感觉可能是这个编码有问题,先去掉试试看,遂去掉该设置重启liferay,中文输出显示正常。正常信息为“信息: Initializing”。


   原本以为可能启动参数中缺少编码设置,而java缺省的编码设置是操作系统的编码,以中文操作系统(windows2000、xp等)为例,其缺省编码是GB18030,这种编码格式可能不适合liferay的控制台输出,需要增加编码设定,考虑到liferay的国际化支持,所以要增加-Dfile.encoding=UTF8,然而实际情况是现在liferay的启动参数中已经有这个选项,而且还不好用,去掉反而输出正常了。


   这种反常的现象,个人认为,无论是加上还是去掉-Dfile.encoding=UTF8编码,都会有问题,去掉这个选项解决了tomcat的输出中文问题,但是如果liferay的java文件,也要输出中文就可能有问题了,因为liferay的java文件是UTF-8编码,现在缺省输出编码是GB18030。加上这个选项,则liferay的java程序输出中文正常,tomcat的中文输出就有上面说的问题了。根本原因在于tomcat的输出和liferay的输出编码不一致导致的,要根本解决这个问题,需要两者的编码输出一致。估计tomcat的编码输出能够定制,调整一下tomcat的输出,估计是log4j之类的设置就可以了。 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:36720次
    • 积分:535
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    最新评论