jsp中文頁面亂碼與傳參亂碼問題解決辦法

來源:互聯網
上載者:User

頁面亂碼

這種亂碼的原因是應為沒有在頁面裡指定使用的字元集編碼,解決方案:只要在頁面開始地方用下面代碼指定字元集編碼即可, www.111cn.net

 代碼如下 複製代碼

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %>

資料庫亂碼

這種亂碼會使你插入資料庫的中文變成亂碼,或者讀出顯示時也是亂碼,

解決方案如下:

在資料庫連接字串中加入編碼字元集

 代碼如下 複製代碼
String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";

並在頁面中使用如下代碼:

 代碼如下 複製代碼
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");


URL傳值亂碼

方法一:

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. 這時再在頁面上顯示,則就是中文了。

方法三:

在請求頁面的請求參數需要用encodeURI進行轉碼,然後在接收請求的頁面需要進行字元集轉換。    本例中的請求和接收頁面的字元集都是UTF-8:

1.請求的JSP頁面用JavaScript的encodeURI()方法將參數轉碼:

 代碼如下 複製代碼
    function toView(param){
    var encodeparam = encodeURI(param) ;
    window.location.href="/naias/advAna_form.do?method=showDetail&title="+encodeparam ;
    }

2.在跳轉的Action中進行字元集轉換:  www.111cn.net

 代碼如下 複製代碼
    public ActionForward excute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
    String title= request.getParameter("title");
    title= new String( title.getBytes("iso-8859-1"), "UTF-8");
    System.out.println(title);
    }

為編碼為UTF-8的JSP頁面傳參,對於中文亂碼的解決分為兩種情況:

1.通過GET方式傳參,通過

 代碼如下 複製代碼
new String(request.getParameter("").getBytes("ISO-8859-1"),"UTF-8");

的方式轉換為需要的編碼,如UTF-8等。

2.通過POST方式傳參,通過聲明

 代碼如下 複製代碼
request.setCharacterEncoding("UTF-8");

的方式聲明編碼類別型來解決。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.