tomcat启动项目,页面乱码
1.首先查看静态页面在编辑器中是否正常, 如果是eclipse ,需要设置一下项目编码格式为utf-8, 如果是idea , 一般会自动识别, 也可以自己手动检查一下,
检查html上面是否有
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
修改 (大概在211行)
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 文件中设置 , 因为win系统默认编码是GBK ,在 logging.properties 文件中
修改编码为GBK
`1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
2localhost.org.apache.juli.AsyncFileHandler.encoding = GBK
3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
3manager.org.apache.juli.AsyncFileHandler.encoding = GBK
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
4host-manager.org.apache.juli.AsyncFileHandler.encoding = GBK
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8
java.util.logging.ConsoleHandler.encoding = GBK`
这里代码都可以改成GBK编码,则中文打印正常
页面乱码问题
1.先清浏览器缓存 (重要) 改了一天不成功,最后清理缓存,解决问题
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的 web.xml (我的是108行左右)修改为下面所示:
<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乱码的解决办法 配置后要重启tomcat
tomcat重启:
如果你的toamcat已经启动:在命令行中进入tomcat安装目录
C:\tomcat\bin>stutdown
之后 C:\tomcatbin>startup
这样tomcat完成了一次重启。