1 原因
因为win10系统的默认字符集是GBK,而 java 虚拟机在启动时,会读取该字符集。而我们的项目一般会设置为 UTF-8。而 Tomcat 本质上也是依赖于 JDK,所以自然会出现中文乱码。
2 解决
修改 Tomcat 安装路径的 bin 目录下 catalina.bat 文件:
set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8"
-D<name>=<value>
语法表示设置系统属性,它是一对键值对。
这里其实是设置 file.encoding 为 UTF-8。
更好的做法是代码中全用英文来写,这样就不会出现编码问题,但这种做法只适用于新项目。