やまものブログ

メモ書きブログです (^_^;A

Eclipse 日本語 (Shift-JIS) ファイルの文字化け

Androidアプリ開発は、ブログを最後に更新した3月末以来、ご無沙汰していました
半年ぶりの再開です
すぐに休止するかもしれませんが


簡単な Web ブラウザのコードを以前に手に入れてありました。
それをまずは読んで理解しよう!
と思って、ADT (Android Development Tools) の Eclipse を起動すると、、、
イメージ 1

文字化けです
Java の知識が貧弱なので、コメントの文字化けは痛すぎる

しかし、文字化け対策は簡単にできました。
イメージ 2

以下、その備忘録です。
結局、最後に記載したとおり、ファイルを UTF-8 に変更することにしました。


文字コードを調べる
Linux では nkf というコマンドで文字コードを調べられるようです。
nkf はデフォルトではインストールされていなかったので、apt-get からです。

$ sudo apt-get install nkf
$ nkf -g MainActivity.java
Shift_JIS

Shift-JIS でした。Windows で開発されたコードなんですね。きっと。


Eclipse文字コードを Shift-JIS に変更する
まずは、Eclipse で Shift-JIS を表示してみました。
File メニュー → Properties を開きます。イメージ 3

Resources にて、上記の赤で囲った "Text file encoding" で "Other:" を選んで、"sjis" と入力しました。"sjis"はプルダウンに無い場合は直接、入力できるようです。
直接入力できるの?!」は私もビックリでしたが、ウェブ検索すると沢山ヒットします。

少し戸惑ったのは、Eclipse の再起動が必要だったことです。
再起動すると Shift-JIS コードが正しく表示されました。
さらに、再起動後は上記のメニューを切り替えると即座に反映されました。


Java ソースファイルの文字コードを UFT-8 に変更する
ファイルの文字コードを Shift-JIS から UTF-8に変更すれば、Eclipse はデフォルト設定でも日本語を表示できるはずです。

日経BP ITpro さんの記事
に解説されている iconv というコマンドで無事にコードを変換できました。

iconv はインストール済みでした。nkf は無かったのに

iconv のオプションで文字コードを指定します。さらに、出力ファイルを "-o" オプションに続けて指定しますが、これを入力ファイルと同一名で指定しても OK でした
$ iconv --from-code SJIS --to-code UTF8 -o MainActivity.java MainActivity.java

文字コードを指定するオプションには短縮形も使えます。
$ iconv -f SJIS -t UTF8 -o MyWebViewFragment.java MyWebViewFragment.java

変換後の文字コードを確認すると、UTF-8 になっていました。
$ nkf -g *
MainActivity.java: UTF-8
MyWebViewFragment.java: UTF-8

これでデフォルト設定でも、日本語のコメントがちゃんと表示されます



最後に、念のため、Eclipse のバージョンは下記の通りです。
    Eclipse Platform    4.2.2.M20130204-1200    org.eclipse.platform.ide