某日接到开发人员协查申请,某系统Tomcat测试环境日志中中文显示乱码,咨询测试服务器是否安装中文字符集,希望运维协助排查并解决乱码问题。系统环境说明:
[root@s146 scripts]# echo $LANG
en_US.UTF-8
[root@s146 scripts]# locale -a |grep CN
bo_CN
bo_CN.utf8
ug_CN
ug_CN.utf8
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
2、百度搜索tomcat中文日志乱码
通过百度搜索tomcat中文日志乱码,可能原因有三个地方conf/server.xml、conf/logging.properties和JDK的JAVA_OPTS参数设置。这三个地方开发人员也已经检查并设置了系统编码为UTF-8编码。
conf/server.xml文件中URIEncoding编码参数设置,可以看到开发人员已经设置为了UTF-8,且经查询在tomcat8以后默认编码即为UTF-8,tomcat8之前默认编码是ISO-8859-1。
————————————————
三、经验总结
因为tomcat多实例环境部署时间已久,且经历了多轮人员流转,也不清楚最初这个编码指定的原因。问题处理完成后,分析可能的原因是tomcat8软件最初是在windows环境下开发环境使用,windows环境设置为GBK中文,显示查看日志均是正常的,直接迁移到linux测试环境使用。通过此次问题处理,主要经验总结如下:
1、出现tomcat中文日志乱码,一般是如上三处编码参数设置问题;
2、乱码时可以查看日志文件编码格式,过滤编码关键字;
3、JVM虚拟机JAVA_OPTS参数中的编码设置起决定性作用。
————————————————
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!