NetBeans の JavaFX Plugin の文字化けのバグ

記事を書いていて気づいたのですが、NetBeansJavaFX Plugin には日本人にとって致命的なバグがあります。

詳細は gihyo.jp の連載の第 2 回に掲載される予定なのですが、はまる人がいるかもしれないのでここで先に書いておきます。

今のところ、NetBeans で日本語を使おうとすると、文字化けします。

通常、NetBeans ではプロジェクトのプロパティでソースのエンコーディングを決められるのですが、JavaFX のプロジェクトではソースのエンコーディングを指定できなくなっているのです。

そのため、デフォルトの UTF-8 でソースファイルは記述されます。

しかし、JavaFXコンパイラはそれをデフォルトエンコーディングでコンパイルしてしまいます。つまり、Windows であれば MS932 がデフォルトエンコーディングなので、UTF-8 のファイルを MS932 として読み込んでしまうのです。

その結果が文字化け。

これを回避するには、NetBeans から行うことはできません。プロジェクトディレクトリの下の nbproject ディレクトリにある project.properties を編集することで回避します。

project.properties の一番下の方に

source.encoding=UTF-8

という記述があるはずです。

これを

source.encoding=windows-31j

のようにデフォルトエンコーディングに変更します。

そのままだとファイルは変更されないので、何でもいいので編集をしてから保存すればエンコードが変更されます。

これで日本語が出るようになります。