tomcat乱码的几种解决
tomcat出現中文亂碼問題有以下幾種情況:
1.通過cmd啟動tomcat出現中文亂碼(tomcat日志輸出編碼與cmd編碼不一致)
cmd啟動tomcat出現中文亂碼
*亂碼原因*:這是由于windows下的cmd的默認編碼是GBK編碼,Tomcat控制臺默認輸出設置為UTF-8編碼
cmd屬性中的默認編碼為GBK
*解決方法*:
- (方式一)修改CMD命令行的編碼格式為UTF-8
- (方式二)將tomcat控制臺日志輸出編碼格式更改為GBK,修改tomcat根目錄下conf/logging.properties文件中的ConsoleHandler.encoding=utf-8,這種方式能解決cmd控制臺中文亂碼,但不建議使用。因為更改了tomcat默認編碼,如果我們使用idea啟動tomcat,idea的默認編碼不是GBK,就會同樣產生idea控制臺下tomcat亂碼問題
修改tomcat日志配置文件
2.idea控制臺下的亂碼問題(idea控制臺編碼與tomcat不一致)
*解決辦法*:
先檢查tomcat下conf/logging.properties配置文件
查看是否ConsoleHandler.encoding=utf-8,如果是則說明tomcat編碼沒有問題,出問題的是idea編碼,如果不等于utf-8,則改為utf-8.一般情況下此時可以正常輸出tomcat日志信息。
3.request請求參數中文亂碼問題:
request.getParameter()打印出來是亂碼
*原因一*:idea控制臺顯示編碼問題,idea的控制臺顯示使用的jvm默認編碼為win系統的GBK編碼,更改jvm編碼格式為UTF-8
解決辦法:
-
找到兩個idea的vmoptions配置文件,在文件中追加-Dfile.encoding=UTF-8
-
或者直接修改idea中的tomcat配置,在vm-options中添加
-Dfile.encoding=UTF-8,兩者效果相同,都是更改系統默認的GBK編碼
修改idea的2個vm配置文件
修改tomcat設置vm-options
原因2
:排除控制臺顯示問題之后,剩下的就是資源傳輸過程中產生的問題
查看瀏覽器端發送的JSP/HTML的編碼格式是否為UTF-8,若不是,改為UTF-8
JSP文件的編碼
設置服務端的編碼,默認是ISO-8859-1
- 對請求頭進行編碼轉換
request.setCharacterEncoding("UTF-8");
備注:該方法只對POST方式提交的數據有效,對GET方式提交的數據無效! - 對tomcat服務器server.xml文件設置編碼
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
備注:該方法對任何時候起作用 - 對請求參數進行編碼轉換
String userName=request.getParamter("userName");
userName=new String(userName.getByte("iso-8859-1"),"utf-8");
4.response中文亂碼問題:
***亂碼原因:***服務器發給瀏覽器的數據默認是按照ISO-8859-1編碼,瀏覽器接收到數據后按照默認的字符集進行解碼后顯示,如果瀏覽器的默認解碼字符集不是ISO-8859-1,就出現亂碼。
作者:電腦死機了
鏈接:https://www.jianshu.com/p/7236d45cd1eb
來源:簡書
response.setContentType(“text/html;charset=UTF-8”);
總結
以上是生活随笔為你收集整理的tomcat乱码的几种解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zbbz的lisp_学习LISP语言的体
- 下一篇: 网易云歌曲下载: