先讲述一下我的尴尬:首先我新建了一个workspace用Eclipse导入了一个项目,默认编码GBK,log4j也是GBK,一切看起来很正常。随后我部署到服务器上,日志出现了乱码。
- 将Linux系统上的tomcat的编码修改
在 tomcat/conf /server.xml
如果不起作用就修改为:URIEncoding=“UTF-8”
如果上述仍然不起作用:
修改:catalina.sh
在第一个CLASSPATH= 后面添加
JAVA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
修改:daemon.sh
我在第二行添加
JAVA_OPTS="$JAVA_OPTS -Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8"
我这里用工具修改
本来这样就可以,但是由于我前期的项目以及log4j错误的编码格式,修改后,日志仍然是中文乱码
2.
随后笨拙的我-在本地修改了项目的编码格式-Window-Preferences-General-Workspace-Text file encoding -Other-UTF-8
在本地运行项目后出现日志中文乱码-于是我修改了log4j的日志编码:log4j.appender.CONSOLE.Encoding=utf-8
3.随后部署到服务器,日志编码正常了。
4.值得注意
tomcat8之前默认是ISO8859-1编码格式,需要解决get请求中文乱码问题。
tomcat8以后都是默认 UTF-8的,如果安装了tomcat8,就可以忽略第一步了。