TOMCAT中亂碼解決方法
中文亂碼問題的根本解決辦法是明確地指定整個應(yīng)用系統(tǒng)統(tǒng)一的字符集。
要做到以下幾點:
一、開發(fā)和編譯代碼時指定字符集為UTF-8。JBuilder和Eclipse都可以在項目屬性中設(shè)置。
二、使用過濾器,如果所有請求都經(jīng)過一個Servlet控制分配器,那么使用Servlet的filter執(zhí)行語句,將所有來自瀏覽器的請求(request)轉(zhuǎn)換為UTF-8,因為瀏覽器發(fā)過來的請求包根據(jù)瀏覽器所在的操作系統(tǒng)編碼,可能是各種形式編碼。關(guān)鍵一句:
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">
五、設(shè)定數(shù)據(jù)庫連接方式是UTF-8。例如連接MYSQL時配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一般數(shù)據(jù)庫都可以通過管理設(shè)置設(shè)定UTF-8
六、其他和外界交互時能夠設(shè)定編碼時就設(shè)定UTF-8,例如讀取文件,操作XML等。
七、如果使用的是tomcat服務(wù)器,那么修改在${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" />
都能達到很好的效果。
要做到以下幾點:
一、開發(fā)和編譯代碼時指定字符集為UTF-8。JBuilder和Eclipse都可以在項目屬性中設(shè)置。
二、使用過濾器,如果所有請求都經(jīng)過一個Servlet控制分配器,那么使用Servlet的filter執(zhí)行語句,將所有來自瀏覽器的請求(request)轉(zhuǎn)換為UTF-8,因為瀏覽器發(fā)過來的請求包根據(jù)瀏覽器所在的操作系統(tǒng)編碼,可能是各種形式編碼。關(guān)鍵一句:
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">
五、設(shè)定數(shù)據(jù)庫連接方式是UTF-8。例如連接MYSQL時配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一般數(shù)據(jù)庫都可以通過管理設(shè)置設(shè)定UTF-8
六、其他和外界交互時能夠設(shè)定編碼時就設(shè)定UTF-8,例如讀取文件,操作XML等。
七、如果使用的是tomcat服務(wù)器,那么修改在${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" />
都能達到很好的效果。