Java預設會以OS的設定當作處理文字檔的編碼,例如中文Windows通常是MS950,而Linux則可能是UTF-8。
有些情況下我們會統一採用UTF-8開發專案,但有些library讀取時就會出現亂碼的問題,這個時候必須在環境變數增加 JAVA_OPTS。
windows
JAVA_OPTS=-Dfile.encoding=UTF8 %JAVA_OPTS%
unix bash
export JAVA_OPTS=-Dfile.encoding=UTF8 $JAVA_OPTS
file.encoding是Java VM的參數,作為讀取檔案時預設的編碼設定。
例如在 Windows + Tomcat + Groovy 1.5.6 的環境下開發Groovlets,若沒有使用file.encoding指定編碼,則即使程式碼用了正確的UTF-8編碼存檔,裡面的中文仍會變成亂碼,問題就出在GroovyServlet會用系統預設的編碼設定讀取Groovlets程式碼。
有些情況下我們會統一採用UTF-8開發專案,但有些library讀取時就會出現亂碼的問題,這個時候必須在環境變數增加 JAVA_OPTS。
windows
JAVA_OPTS=-Dfile.encoding=UTF8 %JAVA_OPTS%
unix bash
export JAVA_OPTS=-Dfile.encoding=UTF8 $JAVA_OPTS
file.encoding是Java VM的參數,作為讀取檔案時預設的編碼設定。
例如在 Windows + Tomcat + Groovy 1.5.6 的環境下開發Groovlets,若沒有使用file.encoding指定編碼,則即使程式碼用了正確的UTF-8編碼存檔,裡面的中文仍會變成亂碼,問題就出在GroovyServlet會用系統預設的編碼設定讀取Groovlets程式碼。
沒有留言:
張貼留言