2009年12月31日木曜日

SpringSource Tool Suite (Eclipse) でGrailsの.propertiesファイルの日本語が化ける件。

正月休みにGrailsを再勉強しようと思い、せっかくなので SpringSource Tool Suite(以下STS)を使ってみようと思った。

STSの使い方、Groovy,Grails環境の設定については、tyama氏が詳しい説明を書いてくれています。
SpringSource Tool Suite 2.2.0でGrailsをためしてみた。 - leftovers...

ダウンロードしてインストールして、設定して、create-appして、順調に行っていたのだが、i18nの messeages_ja.properties の中にある日本語が、全部化けているのに気がつく。

日本語の設定場所を探したが見つからない。そういえばこれもEclipseなんだから、と思ってEcripseをキーワードに検索したら、なんだかいろいろこみいった事情があることが分かった。
  • Javaでは、Propertiesクラスは7バイトまでしか対応していない(Java6でマルチバイトに対応)。
  • .propertiesのエンコーディングはISO 8859-1が使用される。
  • Javaの場合、.propertiesで日本語を使用する場合は、native2asciiを使って、Unicodeコードに変換する。
そんなわけで、Eclipse標準のProperties File EditorはUTF8の日本語を開けないのが仕様みたい。

Grailsの.propertiesファイルには日本語をそのまま書いていいはず(create-appして生成されるファイルには日本語そのまま書いてある)ので、これでは困る。
Eclipseのいろんなサイトに書いてあったプロパティエディタを入れることにした。

http://sourceforge.jp/projects/propedit/
から、jp.gr.java_conf.ussiy.app.propedit_4.8.2_for_eclipse3.0.zip を落として解凍する。
できたフォルダの、featuresの中身をspringsource/sts-2.3.0.RELEASE/features/、
pluginsの中身をspringsource/sts-2.3.0.RELEASE/plugins/の中に入れる。
STSを再起動し、環境設定の
General > Editors > File Associations から *.properties のデフォルトエディタにする。

プロパティエディタ から、変換オプションで"全てユニコード変換しない"にチェック。

これで日本語が表示される。OK。

2 件のコメント:

sxf75227 さんのコメント...

有難う Thanks a lot.さっきやってみました。
助かりましたね。

onoroco さんのコメント...

SpringSource Tool Suite Version: 2.5.2.RELEASE + Grails 1.3.6で同様の文字化けに悩んでいました。
最後の「ユニコードにしない」のチェックつけない場合にうまくいきました。

いずれにしてもありがとうございました。