Javaファイル生成時のエンコードの問題

979 ワード

最近ではRCPアプリケーションでファイルを生成する必要があり、UTF-8としてエンコードされています.eclipseでデバッグすると、生成されたファイルに問題はなく、プロジェクトをコミットすると、生成された文字セットがUTF-8の符号化セットの下で文字化されていると報告されたグループメンバーがコミットされます.デバッグしてみると,符号化セットはGBK符号化を採用していることがわかり,理解できなかった.ファイルで生成されたコードを検索して、次のように配置します.
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(content);

 疑わしい問題はFileWriterにあり、FileWriterのエンコードを表示します.RCPのアプリケーションにはデバッグの情報が付加されている.
FileWriter fileWriter = new FileWriter(file);
MessageDialog.openInformation(null, "     ", fileWriter.getEncoding());

 eclipseでデバッグするとutf 8と表示され、RCPアプリケーションをパッケージ化してからデバッグするとGBKと表示されることがわかりました.最後に問い合わせたところ、FileWriterではデフォルトのプラットフォームに基づいて文字の符号化が使用されていることがわかりました.UTF-8のエンコーディングを使用する場合は、OutputStreamWriterに変更できます.コードを次のように変更します.
OutputStreamWriter outputStream = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
outputStream.write(content);

 テスト、OK!