工作當中,因爲tomcat漏洞問題,做了小版本升級,但是發現升級後,原本正常的頁面出現了中文亂碼。
做升級時,conf和webapps目錄是直接從低版本的tomcat直接拷貝到了高版本的對應位置,所以不會出現tomcat配置差異。
查詢tomcat文檔的/docs/config/http.html頁面發現server.xml配置中的Connector 的參數URIEncoding默認UTF-8,所以這裏考慮是centos系統編碼有問題,使用下面的命令查到果然centos當前的系統編碼是ASCLL碼。命令:
echo $LANG
在不調整系統編碼的情況下,我的問題是按照如下的操作解決的,希望對各位讀者有幫助。
- 對tomcat做如下處理
- \bin\catalina.sh文件,加入字符編碼設置
JAVA_OPTS="-Dfile.encoding=UTF-8"
重啓tomcat後,使用ctrl+f5刷新頁面,查看效果。
- 如果上述還沒有解決問題,再進行如下處理:
- \conf\server.xml文件,加入字符編碼設置
URIEncoding="UTF-8"
上文說過 URIEncoding默認UTF-8,爲啥還要再配置一次?我也在疑惑中。。。