« 相場雑感(妄想) 米高、円安進行で上がる 騰落レシオ  105.69%  +9.60 %  | トップページ | 本日の朝ご飯のおかずの写真 焼いたコノシロの津酢漬け、煮干し出汁の味噌汁など »

2014年1月 8日 (水)

eclipse(Juno)のソースコード記述欄の日本語の文字化けの対応~設定をUTF-8に変えてもダメな頑固な文字化け

 eclipse(Juno)のソースコード記述欄の文字化け対応について記す。
 備忘録でもある。

【1.背景】
 Windows XPから8.1へのOS変更に伴い全てのアプリを再インストールすることになった。
 これまでeclipseは、Indigoを使用していたがこの機会にJunoへバージョンアップをすることにした。
 合わせて開発用Javaもjdk-6u24から最新(2014年1月7日時点)のjdk-7u45-nb-7_4にする。 


【2.eclipseについて】
 「わかりやすいJava」の著者、川場隆氏のHPに、eclipse(Juno)と開発用Javaが同梱されたファイルが登録されている。
 このHPはhttp://www.k-webs.jp/index.html、ファイルの保存先はhttp://www.k-webs.jp/tools.htmlである。 
 但し、同梱されている開発用Javaは、最新ではないので個別にJavaのHPからダウンロードを行う。


【3.症状~設定を変えても文字化けする】
 インストール後、ソースを読み込むと日本語の文字化けに見舞われた。
 漢字、ひらがななどすべてが、♦に似た記号に置き換わっている。

 文字化けの対策をググると次のようなものがあった。
① eclipse.iniの最終行にDfile.encoding=utf-8を入れろ
② eclipseの設定ー一般ーワークスペースのテキストファイルエンコードをUTF-8にしろ
③ Javadocを生成して~
などがあった。②の設定に関しては、他の箇所も弄ったような....

 まぁ、いずれもeclipse側を弄るのはダメであった。
 インストールに問題か?と思い適当なコードを入れて、日本語を入力しても文字化けはしない。
 旧版のIndigoをインストールしても、何故か症状は変わらない。


【4.何故文字化けするのか?】
 eclipseではなく、テキストエディタで見ると文字化けは全くない。
 故に、ファイルが壊れている訳ではない。

 私が使用しているエディタは、TeraPad(ver1.08)。
 このエディタのメニューに「文字コード指定再読み込み」がある。
 サブメニューで色が薄くなっているところが、現在で読み込んでいる文字コードの状態である。
 過去に書いたJavaソースファイルは、何れもSHIFT-JISで読めばエディタ上では正しく表示される。
 しかし、UTF-8など他の文字コードで読み込めば、文字化けする。

 Indigo、Juno側で、SHIFT-JISで読み込めれば問題ないと考えられる。
 しかし、eclipseの設定をSHIFT-JIS相当のMS932にしても文字化けする(と言うかデフォルトがMS932で、MS932でソースを読み込んで文字化けするのだ)。設定変更してeclipse再起動でもダメ。

 ウィキペディアによれば、SHIFT-JISの拡張版が文字コードMS932であるのだが.....少なくとも両eclipse上では互換が十分にあるとは言えない(私の環境では)。


【5.対応策】
 ソースファイルの文字コードをUTF-8にすればよいと考えられる。
 試しに1ファイルだけ、書き換えてeclipse(Juno)で再度読み込むと文字化けなし。

 手動での書き換えも可能であるが、よいフリーウエアがある。
 文字コード判定&変換ツール.NET
 http://www.vector.co.jp/soft/winnt/util/se476748.html

 これを使った。
 これを使えば、フォルダ(サブフォルダ含め)ごと一括で、SHIFT-JISからUTF-8へ書き換え可能である。
 但し、eclipseで文字化け状態で読み込んで、eclipse上でソースを改変し保存してしまったファイルは、そのときの保存コードに左右されるので上手く変換しない(当然であるが)。
 このフリーウエアの使い方は、
 http://d.hatena.ne.jp/Zellij/20130920/p1
が分りやすい。

 結果的には、このフリーウエアで一括変換し、日本語の文字化け問題は解決できた。

 尚、改めて川場隆氏のHPを見ると
 http://www.k-webs.jp/OOP_Intro.html
に「文字化け」とは書いていないが、左下に対策のヒントが記載されていた(Macユーザー向け)。


 それにしてもこれまで使用していた旧バージョンのIndigoで何故文字化けとなったのか?
 XP上では、一度も文字化けの経験はないにも関わらずだ。
 XPから8.1にしたことで何かが変わったのか?この点については調べていないので分らない。


【6.おまけ】
 以下、私的には未確認の話。
 Windowsの改行コードは CR+LF 、しかし、eclipse.iniの改行コード(デフォルト)は、LFとされる。
 LFは、UNIX系OSやLinuxで標準的に使われているらしい。
 改行コードの変更方法は、DOS窓から、
 more eclipse.ini > eclipse.tmp
 move eclipse.tmp eclipse.ini 
でOKらしい。
 この改行コードの件は、文字化けの件でググっているときに発見した。
 出展は、日立のHPで、http://www.hitachi.co.jp/Prod/comp/soft1/cosminexus/useful/tips/090703_eclipseini-lineseparator.htmlである。ここは、日立が作成したJava開発者向けのTips集のページの1つ。信頼性は高いと考えられるので参考にしたい。


|

« 相場雑感(妄想) 米高、円安進行で上がる 騰落レシオ  105.69%  +9.60 %  | トップページ | 本日の朝ご飯のおかずの写真 焼いたコノシロの津酢漬け、煮干し出汁の味噌汁など »

パソコン・インターネット」カテゴリの記事

携帯電話・スマートフォン」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: eclipse(Juno)のソースコード記述欄の日本語の文字化けの対応~設定をUTF-8に変えてもダメな頑固な文字化け:

« 相場雑感(妄想) 米高、円安進行で上がる 騰落レシオ  105.69%  +9.60 %  | トップページ | 本日の朝ご飯のおかずの写真 焼いたコノシロの津酢漬け、煮干し出汁の味噌汁など »