TOMCAT中亂碼解決方法
中文亂碼問題的根本解決辦法是明確地指定整個應用系統統一的字符集。
要做到以下幾點:
一、開發和編譯代碼時指定字符集為UTF-8。JBuilder和Eclipse都可以在項目屬性中設置。
二、使用過濾器,如果所有請求都經過一個Servlet控制分配器,那么使用Servlet的filter執行語句,將所有來自瀏覽器的請求(request)轉換為UTF-8,因為瀏覽器發過來的請求包根據瀏覽器所在的操作系統編碼,可能是各種形式編碼。關鍵一句:
request.setCharacterEncoding("UTF-8")。
需要配置web.xml 激活該Filter。
三、在JSP頭部聲明:<%@ page contentType="text/html;charset= UTF-8" %>。
四、在Jsp的html代碼中,聲明UTF-8:<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
五、設定數據庫連接方式是UTF-8。例如連接MYSQL時配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一般數據庫都可以通過管理設置設定UTF-8
六、其他和外界交互時能夠設定編碼時就設定UTF-8,例如讀取文件,操作XML等。
七、如果使用的是tomcat服務器,那么修改在${tomcat_home}/conf/中的server.xml文件:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8" />
或者改為:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" useBodyEncodingForURI="true" />
都能達到很好的效果。
要做到以下幾點:
一、開發和編譯代碼時指定字符集為UTF-8。JBuilder和Eclipse都可以在項目屬性中設置。
二、使用過濾器,如果所有請求都經過一個Servlet控制分配器,那么使用Servlet的filter執行語句,將所有來自瀏覽器的請求(request)轉換為UTF-8,因為瀏覽器發過來的請求包根據瀏覽器所在的操作系統編碼,可能是各種形式編碼。關鍵一句:
request.setCharacterEncoding("UTF-8")。
需要配置web.xml 激活該Filter。
三、在JSP頭部聲明:<%@ page contentType="text/html;charset= UTF-8" %>。
四、在Jsp的html代碼中,聲明UTF-8:<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
五、設定數據庫連接方式是UTF-8。例如連接MYSQL時配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一般數據庫都可以通過管理設置設定UTF-8
六、其他和外界交互時能夠設定編碼時就設定UTF-8,例如讀取文件,操作XML等。
七、如果使用的是tomcat服務器,那么修改在${tomcat_home}/conf/中的server.xml文件:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8" />
或者改為:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" useBodyEncodingForURI="true" />
都能達到很好的效果。