2008年9月1日

JAVA_OPT: file.encoding 解決中文亂碼問題

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程式碼。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!