jsp亂碼問題

jsp亂碼一直是一個困擾我的問題,今天經過百度找到了比較有效的解決方式,總結如下:


   第一步:配置編碼過濾器,在doFilter()中設置request.setCharacterEncoding("UTF-8");這種過濾一般只是對post方式提交的數據有效,所以有下一步;


   第二步:設置在jsp頁面設置post提交方式(似乎有點廢話,呵呵);至此以post方式提交數據的亂碼問題幾乎都可以解決了。


   get方式提交數據比較麻煩,這是因爲Tomcat對get和post兩種提交方式的處理方法不一樣造成的。自從Tomcat5.x開始,GET和POST方法提交的信息,Tomcat採用了不同的方式來處理編碼,對於POST請求,Tomcat會仍然使用request.setCharacterEncoding方法所設置的編碼來處理,如果未設置,則使用默認的iso-8859-1編碼。而GET請求則不同,Tomcat對於GET請求並不會考慮用request.setCharacterEncoding方法設置的編碼,而是一直使用ISO-8859-1編碼。

對於方式提交數據有以下兩種解決方式:

第一種:配置tomcat的配置文件server.xml裏這句:
               <Connector URIEncoding="GB2312"
                port="8080"   maxHttpHeaderSize="8192"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              connectionTimeout="20000" disableUploadTimeout="true" />


                加上這句:URIEncoding="GB2312"

第二種:String username=new String(request.getParameter("username").getBytes("iso-8859-1"),"UTF-8");

一般推薦使用第二種方式。

紅色字體一下的部分借鑑於博客:jsp中Get提交方式的中文亂碼解決辦法  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章