熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

JSP頁面傳值中文亂碼的簡單解決方法

2022-06-13   來源: JSP教程 

  源代碼ajsp往bjsp傳值

  ajsp頁面內容

  <%@ page language="java" import="javautil*" pageEncoding="GB"%>
<form action="bjsp">
    name:<input type=text name=name>
    <input type=submit>
</form>
bjsp頁面內容

  <%@ page language="java" import="javautil*" pageEncoding="GB"%>
<%
 String name=requestgetParameter("name");
%>
<body>
    <%=name%>
</body>
現象中文亂碼比如“??????”

  解決方法如下

  方法一

   在bjsp中把pageEncoding="GB"改為pageEncoding="ISO"

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

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

   但是這種方法是不可行的

  方法二

   在bjsp中把String name=requestgetParameter("name");修改為

  String name=new String(requestgetParameter("name")getBytes("ISO")"GB");
這時再在頁面上顯示則就是中文了

  方法三

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

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

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

  方法四:

   有人說配置tomcat的配置文件serverxml裡這句

  <Connector URIEncoding="GB"
               port="" maxHttpHeaderSize=""
               maxThreads="" minSpareThreads="" maxSpareThreads=""
               enableLookups="false" redirectPort="" acceptCount=""
               connectionTimeout="" disableUploadTimeout="true" />
加上這句URIEncoding="GB"

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

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

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

  方法五:

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

   就是先配置過濾器又配置serverxml文件都設置成GB的編碼

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


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20139.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.