Java中Servlet Post和Get亂碼


今天在Servlet中出現了亂碼的問題,結果發現Post和Get亂碼處理方式不一樣。

在Servlet Post方法中代碼如下:

name就是前端頁面傳過來的,

調試發現name是亂碼,后來添加了一句 request.setCharacterEncoding("UTF-8");

再次運行發現頁面還是亂碼,調試發現name不是亂碼,由此得到結論out輸出的時候轉換是亂碼。

如是加了一句 response.setContentType("text/html;charset=UTF-8");

這才解決了亂碼問題。

后來好奇,把前端改為了Get提交發現還是亂碼,而且這才亂碼現象不一樣,

在調試過程中發現,name不是亂碼,這個跟Post里面相反,由此得到結論out輸出的時候轉換是亂碼。

因此只用加一句 response.setContentType("text/html;charset=UTF-8"); 就可以了。

 

通過調試查看name值就發現,Post傳遞過了的name就是亂碼,Get傳遞過來的那么是正常的。

但是在頁面上顯示亂碼的方式其實不一樣的。

request.setCharacterEncoding("UTF-8"); 目的讓request過了的參數使用UTF-8格式。

 response.setContentType("text/html;charset=UTF-8");  目的讓頁面使用UTF-8格式轉碼。

 

最后結果如下:

 

 

 

 

PS:鄙人學而不才,java學習者有很多不清楚的地方不喜勿憤,當初你有更好的解決方法,請告訴我,謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM