servlet學習之 亂碼問題

2021-06-26 21:56:36 字數 918 閱讀 7461

解決servlet/jsp中亂碼問題:

1.  request.setcharacterencoding("utf-8")

這種方式解決的是訊息體中的中文編譯碼問題;

post方式引數存放在請求資料報的訊息體中。

故如果表單以post方式提交到伺服器端,表單中包含中文,通過這種方式來解決亂碼問題;

這句話應該位於request.getparameter("引數名")之前。

對於通過url位址列傳遞來的中文,不能解決亂碼問題;

2.如何解決get請求中url中文亂碼問題呢?

get方式引數存放在請求資料報的請求行的uri欄位中,以?開始以param=value¶me2=value2的形式附加在uri欄位之後。

故可以手動的新增請求引數。對於這類亂碼問題,可以通過如下方式解決:

string name=new string(request.getparameter("name").getbytes("iso-8859-1"),"utf-8");

3.pageencoding="utf-8"

通常位於jsp頁面的第一行,它的作用是設定jsp編譯成servlet時使用的編碼。

4.  response.setcharacterencoding("utf-8")

作用是指定對伺服器響應進行重新編碼的編碼。伺服器在將資料傳送到瀏覽器前,對資料進行重新編碼時,使用的就是該編碼。 

可以在瀏覽器端設定成對應的解碼字符集,這樣就能解決瀏覽器亂碼問題。

在呼叫response.getwriter().write("中文資料")之前,寫上這句話。

5. response.setcontenttype("text/html; charset=utf-8")

告訴瀏覽器,得到的響應內容應視為text/html型別,所用編碼為utf-8,瀏覽器自動就以對應的字符集來解碼。

前端基礎之亂碼問題

計算機的底層是以二進位制編碼的方式對資料進行儲存的,不論是什麼形式的內容,最終都是以二進位制的格式儲存的。這裡有兩個概念,編碼和解碼。編碼 按一定的規則,將字元轉換為二進位制編碼的過程。解碼 依據一定的規則,將二進位制編碼轉換為字元的過程。這裡有乙個問題,就是這個規則到底是什麼?通常,我們所說的字符...

servlet亂碼問題

今天學習servlet,出現了比較煩人的亂碼問題,這裡記錄一下解決方案。在html裡面建立乙個form表單,向servle提交資料,提交中文時就會有亂碼,首先按照程式執行思路走一遍看看到底什麼地方可能會出現問題。首先在瀏覽器輸入位址,tomcat建立servlet,瀏覽器顯示html內容。當使用者提...

Servlet亂碼問題

資料像水流一樣從乙個地方流向另乙個地方。文字流是特殊的二進位製流。既然提到亂碼問題,那就必然是用錯誤的編碼去解釋二進位製流。在傳輸過程中必然都是以二進位製流傳輸的。所以,我們需要考慮的是 下面解決最經典的亂碼問題 servlet讀取資料庫,然後resp.getwriter.print 到前端,出現亂...