解決jsp中文亂碼問題

來源:互聯網
上載者:User

 

在jsp中,當使用out.print(request.getParameter("parameter-name"))輸出表單資料時,如果表單資料為中文字元時,則輸出的內容是亂碼。

引起中文亂碼的原因是,在預設情況下,提取表單資料使用的編碼格式為UTF-8.為瞭解決中文亂碼問題,首先要使用 ISO-8859-1 編碼格式將表單資料存放區到位元組數組中,然後再使用藉助 gb2312的編碼格式將位元組數群組轉換為字串。完整的處理表單的程式碼如下:

 



String str=request.getParameter("parameter-name");

Byte[] buffer=str.getByte("ISO-8859-1");

String str1=new String(buffer,"GB2312");

 

 張孝祥的《Javaweb開發內幕-核心基礎》對中文亂碼問題有詳細的講解,建議好好看看(另外,孫鑫的Java教學視頻也有對亂碼的詳細講解)。在該書的p356頁,是這麼描述的:

【由於getParameter方法將本來是gb2312編碼的請求參數值按照iso8859-1字元集編碼轉換成了一個不正確的unicode字串,printWriter.println方法再將這個不正確的unicode字串按照gb2312字元集編碼轉換成數組輸出時 就出現了中文亂碼問題。

iso8859-1字元集編碼到unicode編碼的轉換是一種可逆的運算,沒有發生資訊損失(原理參考孫鑫的Java視頻教學),只要將unicode字串再轉換成iso8859-1編碼 就可以還原出最初的位元組數組。

然後,我們將還原出的初始位元組數組按照他本來的字元集編碼轉換層unicode,就可以得到正確的unicode字串。然後再將正確的unicode按照一種正確的字元集編碼進行輸出是,瀏覽器就可以顯示出正確的中文字元了。】

具體的方法可以參考上面的代碼

 關鍵字:解決jsp中文亂碼問題 jsp 中文亂碼   jsp亂碼問題   jsp中文顯示亂碼   jsp頁面亂碼
 jsp表單提交亂碼   jsp頁面顯示亂碼    中文參數傳遞亂碼   jsp 參數 中文亂碼   jsp 傳遞參數   jsp傳遞中文參數   jsp傳遞多個參數
url 中文參數 亂碼   jsp 亂碼   jsp 中文亂碼   jsp亂碼問題
  
 

相關文章

聯繫我們

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