1. 程式人生 > >tomcat環境中文字符集亂碼

tomcat環境中文字符集亂碼

tomcat中文字符集亂碼

一般在apache官方網站下載的,默認情況下不會出現字符集編碼是亂碼的情況,出現這種情況的原因有兩種:一種是檢查環境,一種是代碼編碼問題。可以從這兩面排查。
開發打字符集,查看編碼問題,同時運維排查從前端到後端所有的字符集情況。
開發檢查開發環境編碼的配置,檢查讀取配置文件的程序,運維檢查系統及tomcat及mysql等的字符集。
有時候是開發問題,有時候是環境問題,需要開發配合一點點排查。
最近筆者遇到了非uri亂碼,而是頁面中部分中文亂碼問題。
在這裏非常感謝我們開發的配合幫助排查
tomcat啟動時,需要指定虛擬機文件編碼一定要和系統環境保持一致,否則會出亂碼問題
作如下設置:-Dfile.encoding=UTF-8,更改tomcat啟動腳本catalina.sh,加入如下內容
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=utf-8 -server -Xms1024m -Xmx1536m -XX:PermSize=256m -XX:MaxPermSize=512m "
官方中給出的解釋是默認字符集是在java虛擬機啟動時決定的,這個依賴於java虛擬機所在的操作系統的區域及字符集。代碼中可以看到,默認字符集就是從file.encoding這個屬性中獲取的。
對 -Dfile.encoding=UTF-8 來說就是設置系統屬性 file.encoding 為 UTF-8 ,即jvm虛擬機中的系統屬性更改為UTF-8.
如果是url亂碼:
設置tomcat的配置文件server.xml

<Connector
 port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
 redirectPort="8443" URIEncoding="UTF-8"
 />

參考文章:
https://blog.csdn.net/telnetor/article/details/5555361

tomcat環境中文字符集亂碼