1.首先查看静态页面在编辑器中是否正常, 如果是eclipse ,需要设置一下项目编码格式为utf-8, 如果是idea , 一般会自动识别, 也可以自己手动检查一下
2.配置Tomcat编码为utf-8
找到Tomcat安装目录下的conf目录下的server.xml, 打开 修改 ,
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
为
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
3.打开 bin目录下的catalina.bat
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%"
为
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
4.如果仅仅是数据库查出来的数据乱码, 还需要设置一下数据库的编码格式,找到MySQL的my.ini文件, 配置一下默认编码格式为utf-8 ,这个稍复杂一些, 你可以自己去百度
用方法三,问题得到缓解,并没有完全解决
tomcat日志乱码问题修改 logging.properties,把UTF-8全部改成GBK
页面乱码问题
1.先清浏览器缓存 (重要) 改了一天不成功,最后清理缓存,解决问题,按F12,然后选中页面刷新按钮右键,清空缓存
html页面设置为 utf-8 在页面头部添加标签
2.修改tomcat中的server.xml文件
(1) 添加 URIEncoding=“UTF-8”
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
(2)
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
3.设置 tomcat中 catalina.bat (jvm的编码)
在catalina.bat 中set “JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%” 下面 添加 : -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8
如下所示:
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%" -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8
这种可以直接在idea中的 VM option 中直接填 -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8
4.设置tomcat的conf目录下web.xml修改为下面所示:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>fileEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
最后重启Tomcat,重启项目