日本語を含む .properties ファイルを使うときは、jvmに食わせる前に native2ascii というツールでUnicodeに変換しないといけないということを最近知った。でも物凄く面倒臭い。
ResourceBundleを使ってgettextのようなそうじゃないようなものを作った。JUnitコードを先に書いたけど中々グリーンにならない。そこで中で使われているPropertiesクラスのjavadoc見てみると以下のような記述があった。プロパティをストリームに保存するとき、またはストリームからロードするときに、ISO 8859-1 文字エンコーディングが使用されます。このエンコーディングに直接表示できない文字には、Unicode escapes が使用されます。ただし、エスケープシーケンスでは 1 文字の「u」だけが使用可能です。他の文字エンコーディングとプロパティファイルを変換する場合、native2ascii ツールを使用できます。なにやら native2ascii でISO 8859-1 に変換しておかないといけないようなので、JUnitコードの中を以下のようにしてみて。
assertEquals("\u3042", gettext._("abc"));
(面倒臭いので「あ」という文字だけ)
更に.propertiesの方もnative2asciiで変換して、Alt-Shift-x tするとようやくグリーンを見ることができました。でもこんなの編集のたびにやりたくないよ。そこで検索。
http://propedit.sourceforge.jp/
というものがあるらしい。早速Eclipseプラグインをインストールした。インストールはEclipse用の更新マネージャを使って楽々でした。
うーん地味に便利で実に便利。native2asciiのことは考えなくてよくなりました。↑のサイトではEclipseプラグインだけじゃなくて、スタンドアロンなアプリケーションも用意されているので状況に合わせてインストールしてみると良いです。
なんだかんだでEclipseは使ってます。
0 コメント:
Post a Comment