境 :win10 系統、tomcat8.5 版本
現象:本地啟動控制臺日志亂碼
解決辦法:
conf 目錄下 logging.properties 文件
java.util.logging.ConsoleHandler.encoding=UTF-8
修改為
java.util.logging.ConsoleHandler.encoding=GBK
原因:
控制臺默認是 GBK 編碼,而 tomcat8.5 默認是使用 utf-8。
重啟 tomcat8.5。控制臺恢復正常。
網下載一個新版本的tomcat,啟動之后發現啟動頁顯示亂碼,雖然不影響使用,但是看著不美觀。如下圖所示
啟動頁面亂碼
感覺應該是文字編碼格式導致,在網上搜索一下,發現修改conf文件夾下的logging.properties文件就行
具體需要修改java.util.logging.ConsoleHandler.encoding這里,將這里的值設置為GBK就可以了。設置后的如下圖所示
現在啟動,就不會出現亂碼啦
文亂碼問題是比較常見和煩人的問題,本文通過一個小程序介紹了如何通過Servlet從上一個頁面獲取參數,
方法很簡單:調用request.getParameter(String s)方法。
解決中文亂碼問題的方法是:
首先要設置response響應的格式:response.setContextType("text/html;charSet=GBK");
然后在加上request.setCharacterEncoding("GBK")
需要注意的是這是解決post方式提交的內容的中文亂碼問題。
解決get方式提交內容的中文亂碼問題的方法:
在Tomcat->conf文件夾->server.xml-->connecter標簽里加上:
URIEncoding="GBK"(注意:在xml里面“=”兩邊不要有空格)
關于Post和Get之間的區別可以看我轉載的另一篇博文:
HTTP POST GET 本質區別詳解
例子:
1.threeparams.html
2.ThreeParams.java
補充:
上面的這個例子.html中每個name都不一樣,如果有多個一樣的name時,可以按如下的方法來獲取:
1)Enumeration paramNames=request.getParameterNames()
調用此方法獲得所有參數的名字,返回一個Enumeration
2) while(paramNames.hasMoreElements()){
String paramName=(String)paramNames.nextElement();
String[] paramValues=request.getParameterValues(paramName);
...
*請認真填寫需求信息,我們會在24小時內與您取得聯系。