資源描述:
《javajspservletgetpost字符集編碼問題(中文亂碼)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學術(shù)論文-天天文庫。
1、javajspservletgetpost字符集編碼問題(中文亂碼)比如以下兩個jsp頁面之間的傳遞:a.jsp頁面內(nèi)容:<%@pagelanguage="java"import=,,java.util.*npageEncoding="GB2312"%><formaction="b.jsp">name:<inputtype=textname=name><inputtype=submit></form>b.jsp頁面內(nèi)容:<%@pagelanguage=Hjava"import="java.
2、util.*npageEncoding="GB2312"%><%Stringname=request.getParameter("name");%><body><%=name%></body>現(xiàn)象:中文亂碼,比如“??????”解決方法如下:方法一:嘗試過,有效但確實不可取1.在b.jsp中把pageEncoding="GB2312"改為pageEncoding="ISO8859-1"雖然這樣b.jsp頁面顯示的內(nèi)容還是亂碼,但是不是那種“??????”
3、的亂碼,而是一些特殊字符2.然后在瀏覽器中查看菜單中修改成GB2312的編碼,這時亂碼就顯示中文了3.但是這種方法是不可行的。方法二試過,有效。我的部分頁面就是用該方法1.在b.jsp中把Stringname=request.getParameter("name");修改為Stringname=newString(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");2.這時再在頁面上顯示,則就是中文了。3.但是我個人不喜歡這種方法,因為編寫起來代碼非常繁瑣方法三:1.有人說修改get
4、/post的傳值方式,但是這是有前提的,如果只是把2.get方式修改成post方式,頁面結(jié)果還是亂碼前提你必須配置了過濾器,若果你只是配置了過濾器,則傳值方式必須是:post方式才不是亂碼,如果是get方式照樣是亂碼!3.過濾器的配置,我想大家都能有,我就不說了方法四:1.句:有人說配置tomcat的配置文件server.xml里這port="8080maxHttpHeaderSize="8192<ConnectorUR舊ncoding="GB2312’maxThreads="150"minSpareThreads="25"maxSpareThre
5、ads=,,75,'enableLookups="false"redirectPort="8443HacceptCount="100connectionTimeout="20000"disableUploadTimeout="true'雖然可/>加上這句:UR舊ncoding="GB2312"2.以但是有前提的,若果你過濾器沒有配置則只是配置了server.xml文件,這樣只有在表單是get傳值時候才可以!當是post方式時,照樣是亂碼!*這時我們就可以看出在tomcat5中的post與get傳值方式是不一樣的*有人要問有沒有一種方法讓傳值使用ge
6、t方式或post方式都好用呢,下面就是我推薦的方法五方法五:1.其實很簡單,就是同時實現(xiàn)方法三又實現(xiàn)方法四2.就是先配置過濾器,又配置server.xml文件,都設(shè)置成GB2312的編碼不會是亂碼!