前提
Spring の Validation メッセージが文字化けする。
※本番環境など
※Eclipse で実行したときは、正常に表示されている
問題点
本ページでは、「propertiesファイルは、unicode(Eclipseでは、ISO-8859-1)エンコードされていなければならない。」に違反している場合を取り上げます。
Spring では、Spring api を通じて読み込まれる propertiesファイルは、マルチバイト文字を読み込む想定で作られていないため、上記エンコード方式である必要がある。
解決策
1. Eclipse エディタのエンコード方式を変更する
(注意)変更前に MessageResources.properties の内容をバックアップしておく
- Eclipse のパッケージ・エクスプローラーから、MessageResources.properties を右クリック
- プロパティーをクリック
- リソース→テキスト・ファイル・エンコード→その他:ISO-8859-1 を選択
- 適用して閉じる、をクリック
2. ファイルを記述し直す
- Eclipse のパッケージ・エクスプローラーから、MessageResources.properties を右クリック
- 次で開く→Limy プロパティー・エディターをクリック
- 文字化けしていたら、記述しなおす(バックアップからコピペなど)。
- 保存する
3. エラー表示が日本語になる
- 上記によって、Eclipse 上では日本語で表示され、文字のエンコード方法は ISO-8859-1 になっているファイルが出来上がっている。