Servlet及資料庫亂碼問題(java)

2021-08-07 02:14:01 字數 1066 閱讀 6940

1. servlet部分亂碼問題

servlet輸出中文

1)為什麼會有亂碼?

out.println方法在預設情況下,會使用"iso-8859-1"來編碼。

2)解決方式

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

注:作用1:out.println方法會使用指定的字符集(比如"utf-8")來編碼。

作用2:設定content-type訊息頭的值,告訴瀏覽器,伺服器返回的資料型別。

2. 表單傳遞資料亂碼問題

如果表單包含有中文引數值,如何處理?

1)為什麼會有亂碼?

表單提交時,瀏覽器會對中文引數值進行編碼。

注:瀏覽器開啟該表單所在的頁面時使用的字符集來編碼。

伺服器端預設情況下,會使用"iso-8859-1"來解碼。

2)解決方式

step1:保證瀏覽器按照指定的字符集來編碼。

比如,對於乙個靜態頁面(html),新增

content="text/html;charset=utf-8">

step2:伺服器端,按照對應的字符集來解碼。

request.setcharacterencoding("utf-8");

注:a. 該方法必須要新增到所有的

request.getparameter方法的前面。

b. 只針對post請求有效。

c. 如果是get請求,可以採取如下的方式來處理:

name = new string(

name.getbytes("iso-8859-1"),"utf-8");

這行**的作用:先獲得瀏覽器傳送過來的原始的位元組陣列,然後使用指定的字符集解碼。

3. 資料庫亂碼問題(mysql)

mysql中的亂碼問題

mysql的部分驅動在預設情況下,會使用「iso-8859-1」來編碼和解碼

解決方式:

jdbc:mysql://localhost:3306/jsd1607db

?useunicode=true&characterencoding=utf8

前台提交servlet存入資料庫亂碼問題

首先必須統一所有為utf 8模式,設定表和資料庫都為utf 8 修改my.ini,加入兩句character set server utf8和default character set utf8,mysqld datadir c program files mariadb 5.5 data port...

servlet亂碼問題

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

Servlet亂碼問題

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