Java中的中文亂碼問題
客戶端向服務器發送請求時,有兩種方式post和get請求,當客戶端提交的內容有中文時。服務器要進行設置才能獲得中文,否則獲得的是亂碼。那麽怎麽設置呢:在servlet中進行設置,有兩種情況:1:請求時服務器獲得客戶提交的中文,
2:響應時客戶端瀏覽器得到響應的中文
1:服務器獲得客戶端提交的內容,兩種情況get和post請求
1)鏈接、Js等get請求中文亂碼處理方式
String username=new String(request.getParameter("username").getBytes("iso-8859-1"));
這樣表單中usename輸入的是漢字的話,再servle中用上述寫法得到的才不是亂碼
2)普通表單get請求中文亂碼處理方式
String username=new String(request.getParameter("username").getBytes("iso-8859-1"),"utf-8")
(2)Post請求
request.setCharacterEncoding("utf-8");--設置字符編碼
String username=request.getParameter("username");
2:在servlet中響應信息,將信息相應在客戶端瀏覽器上
就是客戶端瀏覽器要得到服務器響應的中文有兩種情況:但是第二種情況用在第一種情況中也行,所以以後都用第二種情況。
1)在jsp頁面中用Js或是域對象得到中文在輸出,在servlet中直接寫:
response.setCharacterEncoding("utf-8");
response.getWriter().print("用戶名輸入錯誤");
2)直接在servlet中做個輸出流
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("用戶名123456");
==========================================
1:mysql中文亂碼?
1:進入數據庫--右擊數據庫----更改數據庫---更改格式
2:右擊表---更改表-----高級屬性---更改格式
3:在mysql配置文件中設置----mysql安裝路徑---my.ini配置文件--更改兩個屬性
default-character-set=utf8
character-set-server=utf8
註意:在MySQL中utf-8的寫法是utf8,如果寫成utf-8會報錯
Java中的中文亂碼問題