狂淘

          www.kuangtao.net

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            6 隨筆 :: 185 文章 :: 68 評論 :: 0 Trackbacks

          1.JSP與頁面參數之間的亂碼

            JSP獲取頁面參數時一般采用系統默認的編碼方式,如果頁面參數的編碼類型和系統默認的編碼類型不一致,很可能就會出現亂碼。解決這類亂碼問題的基本方法是在頁面獲取參數之前,強制指定

          request獲取參數的編碼方式:request.setCharacterEncoding("GBK")或request.setCharacterEncoding("gb2312")。

           servlet  如果在JSP將變量輸出到頁面時出現了亂碼,可以通過設置response.setContentType("text/html;charset=GBK")或response.setContentType("text/html;charset=gb2312")解決。


          ----------------------------------
          2、數據庫亂碼
            這種亂碼會使你插入數據庫的中文變成亂碼,或者讀出顯示時也是亂碼,解決方法如下:
            在數據庫連接字符串中加入編碼字符集
            String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
            并在頁面中使用如下代碼:
            response.setContentType("text/html;charset=gb2312");
            request.setCharacterEncoding("gb2312");

          3.中文作為參數傳遞亂碼
            當我們把一段中文字符作為參數傳遞個另一頁面時,也會出現亂碼情況,解決方法如下:
            在參數傳遞時對參數編碼,比如
            RearshRes.jsp?keywords=" + java.net.URLEncoder.encode(keywords)
            然后在接收參數頁面使用如下語句接收
            keywords=new String(request.getParameter("keywords").getBytes("8859_1"));

          4.JSP中文亂碼問題之四:Get方式表單傳遞和URI方式傳遞參數亂碼

          解決方案

          apache-tomcat-6.0.18\conf\server.xml

          在這個內加入一行

          < Connector port="8080" protocol="HTTP/1.1"     connectionTimeout="20000"     redirectPort="8443"  URIEncoding="GBK" />

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

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

          6.JSP中文亂碼問題更好的解決方法是使用過濾器技術

          Encoding過濾器

          package com.htt;   import java.io.IOException;   import javax.servlet.Filter;   import javax.servlet.FilterChain;   import javax.servlet.FilterConfig;   import

          javax.servlet.ServletException;   import javax.servlet.ServletRequest;   import javax.servlet.ServletResponse;   public class Encoding implements Filter {       public void

          destroy() {  }       public void doFilter(ServletRequest request, ServletResponse response,   FilterChain chain) throws IOException, ServletException {      

          request.setCharacterEncoding("GBK");       chain.doFilter(request, response);       }       public void init(FilterConfig filterConfig) throws ServletException { }   }      

          Web.xml文件中的設置

          < filter>     < filter-name>encoding< /filter-name>     < filter-class>com.htt.Encoding< /filter-class>  < /filter>  < filter-mapping>     < filter-name>encoding< /filter-name> 

             < url-pattern>/ToCh_zn< /url-pattern>  < /filter-mapping>

          posted on 2009-09-13 10:49 狂淘 閱讀(718) 評論(0)  編輯  收藏 所屬分類: jsp項目 傳到服務器問題
          主站蜘蛛池模板: 乌兰县| 教育| 宁波市| 南阳市| 五常市| 平昌县| 托克逊县| 梅河口市| 崇义县| 宜黄县| 涟水县| 拜泉县| 桦川县| 萝北县| 曲麻莱县| 德庆县| 潢川县| 通辽市| 星座| 攀枝花市| 定安县| 石台县| 黎城县| 牟定县| 沾化县| 太白县| 启东市| 丁青县| 隆尧县| 老河口市| 离岛区| 鄢陵县| 瑞丽市| 元江| 翁牛特旗| 涡阳县| 大连市| 垣曲县| 巴彦县| 黑河市| 临汾市|