程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp亂碼問題

jsp亂碼問題

編輯:關於JSP

a.jsp頁面內容:

%26lt;%@ page language="java" import="java.util." pageEncoding="GB2312"%%26gt;%26lt;form action="b.jsp"%26gt; name:%26lt;input type=text name=name%26gt; %26lt;input type=submit%26gt;%26lt;/form%26gt;

b.jsp頁面內容:

%26lt;%@ page language="java" import="java.util." pageEncoding="GB2312"%%26gt;%26lt;% String name=request.getParameter("name");%%26gt;%26lt;body%26gt; %26lt;%=name%%26gt;%26lt;/body%26gt;

現象:中文亂碼,比如“??????”

解決方法如下:

方法一:

1. 在b.jsp中把pageEncoding="GB2312"改為pageEncoding="ISO8859-1"

雖然這樣b.jsp頁面顯示的內容還是亂碼,但是不是那種“??????”的亂碼,而是一些特殊字符

2. 然後在浏覽器中查看菜單中修改成GB2312的編碼,這時亂碼就顯示中文了。

3. 但是這種方法是不可行的。

方法二:

1. 在b.jsp中把String name=request.getParameter("name");修改為

String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");

2. 這時再在頁面上顯示,則就是中文了。

方法三:

1. 有人說修改get/post的傳值方式,但是這是有前提的,如果只是把get方式修改成post方式,頁面結果還是亂碼!

2. 前提你必須配置了過濾器,若果你只是配置了過濾器,則傳值方式必須是:post方式才不是亂碼,如果是get方式照樣是亂碼!

3. 過濾器的配置,我想大家都能有,我就不說了

方法四:

1. 有人說配置tomcat的配置文件server.xml裡這句:

%26lt;Connector URIEncoding="GB2312" port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /%26gt;

加上這句:URIEncoding="GB2312"

2. 雖然可以但是有前提的,若果你過濾器沒有配置,則只是配置了server.xml文件,這樣只有在表單是get傳值時候才可以!當是post方式時,照樣是亂碼!

這時我們就可以看出在tomcat5中的post與get傳值方式是不一樣的

有人要問有沒有一種方法讓傳值使用get方式或post方式都好用呢,下面就是我推薦的方法五

方法五:

1. 其實很簡單,就是同時實現方法三又實現方法四!

2. 就是先配置過濾器,又配置server.xml文件,都設置成GB2312的編碼

3. 這樣無論是post還是get方式的表單傳值,中文都不會是亂碼!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved