linux 系統預設編碼utf-8
修改和查看linux編碼問題:
[html] view plain copy [root@test-1 ~]# vi /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16"
Linux預設編碼UFT-8,終端輸出預設編碼自然是UTF-8。
window中使用secureCRT預設編碼是GBK,連結到linux系統輸出亂碼,因為Linux預設是utf-8,所以把secureCRT的預設編碼修改為utf-8就ok。
WINDOWS 預設編碼GBK
瞭解了系統平台的的編碼,才容易解決編碼問題。
WIN7中tomcat啟動的控制台預設編碼是GBK,一般軟體預設採用系統預設字元集。
tomcat的應用一般常用的國際編碼是utf-8,應用輸出採用系統預設編碼GBK,
所以亂碼,再啟動jvm時設定成-Dfile.encoding="UTF-8",應用亂碼問題解決。
這裡又引出了另外一個問題:
Java.NET.URLEncoder.encode("中國"); 如果沒有加encoding 系統預設是系統編碼。System.getProperty("file.encoding");
如果你jetty ,tomcat 沒有在啟動的時候沒有加-Dfile.encoding="UTF-8" 這樣加密解密的時候就會出現編碼問題。
解決辦法:
原因是因為file.encoding預設的字元集跟作業系統有關,中文作業系統下面預設的字元集是GBK,如果流程定義的xml檔案中用UTF-8,
則不能正確轉換,所以需要修改file.encoding的值為UTF-8。
部署在tomcat中的檔案要修改file.encoding的值,可以在tomcat的catalina.bat檔案中set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%的後面加上 -Dfile.encoding="UTF-8"