Jsp頁面在URL中傳遞參數會出現亂碼
解決方案如下:
一、使用更改Tomcat的方法。這個方法簡單,但是需要改動的地方是伺服器軟體層級的,如果稍微變動系統將無法正確轉碼,移植性不高。
1、來到tomcat目錄,找到conf目錄下的server.xml問價,開啟,找到標籤,在最後添加URIEncoding=’GBK’,效果如下:
view plaincopy to clipboardprint?
port="8080"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"
enableLookups="false"redirectPort="8443"acceptCount="100"
debug="0"connectionTimeout="20000"
disableUploadTimeout="true"URIEncoding=″GBK″/>
這種方法對get這個方法測試成功。
2、在每個Jsp頁面添加如下代碼
view plaincopy to clipboardprint?
<%@pagepageEncoding=”gb2312″%>
<%@pagecontentType=”text/html;charset=gb2312″%>
<%request.setCharacterEncoding(”gb2312″);%>
<%@ page pageEncoding=”gb2312″%><%@ page contentType=”text/html;charset=gb2312″%><%request.setCharacterEncoding(”gb2312″);%>
編碼方式也可以改成GBK,支援繁體中文。重啟Tomcat,這一步很重要,否則可能看不到效果。
這種方法對post測試成功。建議兩種同步使用。
二、使用JSP的scriptLet
view plaincopy to clipboardprint?
<%=newString(elValue.getBytes("iso-8859-1"),"GBK")%>
<%=new String(elValue.getBytes("iso-8859-1"),"GBK")%>
三、使用自訂JSTL
這是我們的重點所在,這裡要詳細說明.
第一,編寫自訂標籤
第二編寫tag檔案
第三部署tag檔案
第四使用吧;)很簡單的.