プロパティファイルで「×」が文字化けする

Javaのプロパティファイルを複数人で編集している際、気づいた時に、もとは「×」だったところが文字化けする事象が発生した。

Subversionの履歴をたどると、以前正しく表示されていたころの値自体が特殊な値になっていた。
本来、「×」はプロパティファイルでは「¥u00d7」として表記されるはずであるが、「0xd7」の文字が記述されていた。
文字化けするようになったその後のコミットでは「¥ufffd」となっていた。

この「¥ufffd」はアプリケーションが認識できない文字と入れ換えるために予約された文字とのことである。



この原因をさぐるにあたり、不思議なのは、「×」が「¥u00d7」ではく、「0xd7」の値になっていることである。

この保存をした人の環境をみると、Pleiadesで日本語化してEclipseを使用していた。

実際に、Pleiadesをダウンロードして試してみた。

f:id:mabushii_sign:20121120011130j:plain
プロパティエディタで記述。


f:id:mabushii_sign:20121120011147j:plain
ファイルをサクラエディタで開いたところ。
「¥u00d7」ではなく、文字化けして半角「ラ」になっている。バイナリでは「0xd7」



この時点で、挙動がおかしいことがわかる。



そして、「¥ufffd」のコミットをした人(自分)の環境は、英語のEclipseを使用している。
同じことをやったときの挙動。
プロパティは次のプラグインをインストールして実施。
・プロパティエディタ開発プロジェクト
http://sourceforge.jp/projects/propedit/



f:id:mabushii_sign:20121120011248j:plain
プロパティエディタで記述。


f:id:mabushii_sign:20121120011255j:plain
ファイルをサクラエディタで開いたところ。
しっかり「¥u00d7」で保存されている。


f:id:mabushii_sign:20121120011310j:plain
今度は、Pleiadesで保存したファイルをプロパティエディタで開く。
この時点で、文字化けしているようにみえる。


f:id:mabushii_sign:20121120011317j:plain
このプロパティとは関係無い箇所を変更して保存。
「×」に値する箇所に「¥ufffd」が設定されている。



これが文字化けの原因と思われる。




今回、この対策として、
開発者は日本語化せず英語のEclipseを使用し、propeditを使用して編集するように統一しようと思います。

2012/12/03 追記
id:cypher256 さんからコメントを頂き、
本事象は、Pleiadesに同梱されているLimy Eclipseプラグインの問題であることがわかりました。
また、作成者の方への連絡と、Pleiades All in One 4.2.1.v20121123への対応を頂きました。