亂碼,又見亂碼

來源:互聯網
上載者:User

相信寫JSP的人都遇到過亂碼的問題,似乎JSP亂碼是一個非常經典的問題。以前遇到亂碼的時候,基本都可以搞定,當時遇到的亂碼無非以下兩種:

1.頁面上的漢字亂碼

這個我碰到的比較少,多半是因為沒有加上

<%@ page contentType="text/html;charset=gb2312" %>,或者是說這句代碼制定的字元集與<meta http-equiv="Content-Type" content="text/html; charset=gb2312">中指定的不一致,這個應該比較好搞定。

2.從表單讀取資料亂碼

這個我就基本上經常碰到了,通常是這樣的name=request.getParameter(“name”),在頁

面上列印出來的時候就亂碼了,這個時候通常只要重新轉碼就可以搞定了,如下面的代碼所示:name=new String(name.getBytes(“ISO-8859-1”),”GB2312”);

前天又遇到了一個亂碼問題,於是按照以前的經驗來進行處理結果怎麼搞都不行,無

論怎麼轉碼都不行,情況是這樣的:因為使用者要求所有的地方都統一為UTF-8編碼,於是用了如下的指令,<%@ page contentType="text/html;charset=utf-8" %>和<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,

從表單中用request.getParameter得到參數的時候出現了亂碼,此時加上這句request.setCharacterEncoding("utf-8");基本就沒亂碼了。但是,如果我通過url來傳遞中文參數的話就行不通了,這個時候無論我怎麼轉碼,或者說修改tomcat的設定檔都不行了。My Code是類似這樣的:

var name="<%= c_name %>";

window.location = url+"? name="+name+"&unit="+unit

其中c_name是中文。我上網試了很多方法都不行,最後經過如下的處理就可以了:

var name="<%= java.net.URLEncoder.encode(c_name,"utf-8") %>";

window.location = url+"? name="+name+"&unit="+unit。

    註:儘管亂碼問題一般都被解決了,但是一直想弄清亂碼產生的根源是什麼,以前看到過一片文章,詳細闡述了亂碼產生的原因,可惜當時太浮躁,沒看完,現在也找不到了,哪位兄弟知道的話不妨告知一下,這才是解決問題的根本,不僅要知其然還要知其所以然,^_^。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.