linux下亂碼問題
阿新 • • 發佈:2019-01-31
今天在新伺服器的tomcat上跑專案的時候 tomcat控制檯亂碼!
servlet接收引數亂碼。
經常要看日誌所以在/home目錄下寫了個指令碼
[root@template ~]# cd /home/sh/
[root@template sh]# ll
總用量 4
-rwxr-xr-x 1 root root 54 6月 16 18:08 showtomcatlog.sh
[root@template sh]# less showtomcatlog.sh
tail -f /usr/local/tomcat7/logs/catalina-daemon.out
showtomcatlog.sh (END)
許可權改為755 以後看日誌只要執行這個指令碼
控制檯亂碼解決辦法
1.嘗試修改tomcat的編碼
[root@template sh]# vim /usr/local/tomcat7/conf/server.xml
/8080 找到這一行 新增如下 URIEncoding="UTF-8"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
enableLookups="false"/>
改了之後沒有效果
2.嘗試修改tomcat 配置檔案
[root@template sh]# vim /usr/local/tomcat7/bin/catalina.sh
242行左右
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
保留上面註釋複製增加一行
JAVA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
還是沒卵用
3.終於看到一個靠譜一點的建議。修改系統檔案
[root@template sh]# vim /etc/sysconfig/i18n
原來檔案如下
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
修改第一行為
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
在修改為 “zh_CN.UTF-8″ 之前可以使用locale -a 檢視伺服器是否支援該編
其實早應該想到。之前、在Xshell、putty、SSH Secure Shell Client 等等客戶端設定GBK時才不亂碼。改了之後客戶端要設定成UTF-8
至此亂碼問題完美解決。整理下寫個日誌希望對有需要的童鞋有幫助。感覺設定tomcat配置檔案還是有作用的。之前亂碼是一串問好?????設定完後是亂碼的漢字。改了i18n後亂碼解決。
今早發現原來問題沒有解決
情況如下,昨天改了編碼之後再tail 看日誌沒有亂碼了。但是重啟了tomcat之後又出現亂碼。 開機自啟動不會亂碼。手動重啟就會出現亂碼?
tomcat手動重啟後亂碼。tomcat重啟後亂碼
標記一下,待解決
上午忙去了沒理它,下午無緣無故自己好了!不再亂碼?神奇!