- 确定你的工程所使用的文件编码
- 在Tomcat的%CATALINA_HOME%\bin目录下编辑catalina.bat文件,并添加以下
chcp 65001
set "JAVA_OPTS=-Dfile.encoding=utf-8 -Dsun.stdout.encoding=utf-8 -Dsun.stderr.encoding=utf-8 -Xmx1524m"
- chcp是将 当前Dos窗口的字符编码设置为utf-8 默认为GBK编码如果你的操作系统是中文
- -Dfile.encoding=utf-8 设置当前JVM的编码
- -Dsun.stdout.encoding=utf-8 -Dsun.stderr.encoding=utf-8 为JDK21及以后需设置的属性
- 检查%CATALINA_HOME%\conf\logging.properties 文件中设置的字符编码,默认为UTF-8
- 最后关键点是通过%CATALINA_HOME%\bin\catalina.bat run的方式启动,就这个忽略这个问题导致我一直没有正常过,因为用%CATALINA_HOME%\bin\startup.bat方式会启动子窗口承认父窗口的编码(猜测)真正原因没有深究,但这样设置后正常显示