2007年5月10日木曜日

日本語 on MacOS X

MacOSX で grails を使っていると, .groovy コード中に埋め込まれた日本語が web ブラウザ上で化ける. 例えば

static constraints = {

attendance(inList:['未定', '出席', '欠席'])

......

}


とすると, 生成される GRUD アプリケーションで attendance はセレクトボックスで表示されるのだけど, 項目名が読めない.


ま, ここにこういうコードが埋め込まれているのがいいかどうかという議論はあり得るわけだが, それはそれとして.


MacOSX だと, Java のデフォルトのエンコーディングが多分 sjis みたいのになっているから, ${GRAILS_HOME}/bin/startGrails というシェル・スクリプトの適当な場所 (前の方) に,

JAVA_OPTS="-Dfile.encoding=utf-8"

を付け加えておけばOK.


もちろん, 元の .groovy コードは utf-8 で書いておかねばだけど.


.gsp ファイル中の日本語は (utf-8で書いておけば) 大丈夫だし, g:message タグを使えば i18n できる.