Linux部署tomcat时,通过自带的jsvc注册自启动服务,日志文件内容/中文目录/中文文件名出现乱码,而通过命令行执行./startup.sh又正常的情况:
原因:
1、系统本身不支持中文,自行解决;
2、系统默认编码不是UTF-8,而手动执行默认使用当前用户配置的编码方式;
3、未设置环境变量(LANG,LC_ALL,CATALINA_OPTS),指定编码方式
解决方法:
1、确保Linux系统支持中文编码(如UTF-8),通过locale命令查看系统编码:
2、针对日志文件内容乱码问题,可设置CATALINA_OPTS变量,指定编码方式为UTF-8
编辑文件(根据实际情况)/etc/init.d/tomcat,在文件头部加上:
CATALINA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
并注释掉文件中的一下内容:
修改后:
3、针对中文目录/中文文件名乱码问题,可设置LANG和LC_ALL变量,指定编码方式未UTF-8
编辑文件(根据实际情况)/etc/init.d/tomcat,在文件头部加上:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
重新通过service tomcat start启动tomcat,乱码问题解决。