一、請求結果的亂碼:
- POST提交:
解決辦法:在顯示中文字符串前加上 request.setCharacterEncoding("gbk");
或者:在獲取字符串str后使用str = new String(str.getBytes("ISO-8859-1"),"GB2312");轉換
ISO-8859-1是默認的字符編碼
- GET提交:
解決辦法:
1、項目已打包到web服務器:
找到 %TOMCAT_HOME%\conf\server.xml文件,將此文件的代碼段末尾加 入 URIEncoding="gbk",結果如下所示:
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="gbk"/>
2、開發過程中:
找到 %project_name%\Tomcat\conf\server.xml文件,刪除文件中的備注,增加URIEncoding="gbk",結果如下所示:
<Connector acceptCount="10" connectionTimeout="60000" maxThreads="75" minSpareThreads="5" port="8080" URIEncoding="gbk"/>
二、處理響應結果的亂碼..
1.在servlet中 response.setContentType("text/html;charset=GB2312");
2.在jsp中 <%@page contentType="text/html;charset=GB2312"%>
3.在html中 <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=GB2312"></head>