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完成了一次重啟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM