本日は2018年の祝日をカレンダーに反映させました。プロパティファイルに祝日のデータを入力してみたところ、エンコードが上手くいかずに文字化けしてしまいました。 スケジュールのスクリーンを処理するファイルを見たところ文字コードのエンコードはちゃんとしているみたいでした。以下のコードでALEipConstants.DEF_CONTENT_ENCODINGがエンコードする文字コードの指定をしており、defaultFile.exists()でプロパティファイルを読み込んでいました。
try { if (defaultFile.exists()) { // デフォルトの祝日を読み込む. reader = new BufferedReader(new InputStreamReader(new FileInputStream(defaultFile),ALEipConstants.DEF_CONTENT_ENCODING)); loadHoliday(reader, defaultHolidays); }
しばらく悩んでいたところ、アルバイトの先輩が「コードではなくプロパティファイルのテキストエディタに問題がある」と教えて下さり解決しました。
つまり本来プロパティファイルの日本語の文字はUTF-8の文字コードで表示されているところを、Limyプロパティエディタというのを通して日本語に見えているため、別のテキストエディタで入力しないといけないことが判明しました。ついでに文字コードの変換についていろいろ調べましたがかなりの人が苦戦しているようでした。