1. 程式人生 > >Plugin-project開發,java檔案編碼

Plugin-project開發,java檔案編碼

最近在做RCP應用的時候,需要生成檔案,而使用編碼為UTF-8。在eclipse中除錯時,生成的檔案的沒有任何問題,將專案提交後,有小組成員提交報告說生成的字符集在UTF-8的編碼集下顯示為亂碼。經過除錯檢視,發現編碼集採用了GBK編碼,遂不解。
通過查詢檔案生成的程式碼,定位如下:

Java程式碼  收藏程式碼
  1. FileWriter fileWriter = new FileWriter(file);  
  2. fileWriter.write(content);  

 懷疑問題出現在FileWriter中,通過檢視FileWriter的編碼。在RCP的應用中加上了除錯的資訊。

Java程式碼  收藏程式碼
  1. FileWriter fileWriter = new FileWriter(file);  
  2. MessageDialog.openInformation(null"字符集編碼", fileWriter.getEncoding());  

 
發現在eclipse中除錯時,顯示為utf8,而將RCP應用打包後,再除錯時,顯示為GBK。
最後經過查詢時得知,在FileWriter是根據預設的平臺來使用字元的編碼。
如果要使用UTF-8的編碼,則可改用OutputStreamWriter。
將程式碼改成如下:

Java程式碼  收藏程式碼
  1. OutputStreamWriter outputStream = 
    new OutputStreamWriter(new FileOutputStream(file), "UTF-8");  
  2. outputStream.write(content);  

 
測試,OK!