SJ blog
Eclipse
Z

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

Eclipseの文字化け・エンコーディング問題を完全解決する

Eclipseで日本語が文字化けする原因と解決方法。ワークスペース・プロジェクト・ファイル単位でのUTF-8設定、コンソール文字化け対策を解説します。

一言結論

Eclipseの文字化けはワークスペース・プロジェクト・ファイルの三層構造でエンコーディングが設定されており、まずワークスペース全体をUTF-8にするのが最優先の対処だ。

文字化けが起きる原因

Eclipse での文字化けは、複数の階層でエンコーディングが設定されており、それが食い違うときに発生します。

ワークスペース設定
  └── プロジェクト設定
        └── ファイル単位の設定

1. ワークスペース全体のエンコーディングを変更

Window > Preferences > General > Workspace

  • Text file encodingOther: UTF-8 に変更

これが最も重要です。 新規プロジェクトはこの設定を継承します。

2. プロジェクト単位の設定

既存プロジェクトがあるフォルダ直下の .settings/org.eclipse.core.resources.prefs に:

eclipse.preferences.version=1
encoding/<project>=UTF-8

または Eclipse から:

プロジェクト右クリック → Properties → Resource
  → Text file encoding → Other: UTF-8

3. ファイル単位の設定

特定のファイルのエンコーディングを変更:

ファイルを右クリック → Properties → Resource
  → Text file encoding → Other: UTF-8 または Shift_JIS

4. コンソールの文字化け

実行時にコンソールの日本語が化けている場合:

実行設定でエンコーディングを指定

Run > Run Configurations > Common タブ
  → Encoding → Other: UTF-8

JVMオプションで指定

VM Arguments に追加:
-Dfile.encoding=UTF-8
-Dstdout.encoding=UTF-8

eclipse.ini に追加(Eclipse 自体のエンコーディング)

-Dfile.encoding=UTF-8

eclipse.ini は Eclipse のインストールフォルダにあります。

5. Tomcat(サーブレット)の文字化け

Run > Run Configurations > Apache Tomcat > Arguments VM Arguments に追加:

-Dfile.encoding=UTF-8

6. Maven でのエンコーディング設定

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

7. .properties ファイルの文字化け

Java の .properties ファイルは本来 ISO-8859-1 です。Eclipse はデフォルトでこの仕様に従うため、日本語が \u30BF\u30B9\u30AF のような Unicode エスケープで保存されます。

解決策1: UTF-8 で保存して Properties Encoding を変更

Preferences > General > Content Types
  → Text > Java Properties File
  → Default encoding: UTF-8

解決策2: ResourceBundle UTF-8 Control を使う(Java 9以降)

// Java 9以降は UTF-8 がデフォルト
ResourceBundle bundle = ResourceBundle.getBundle("messages");

解決策3: Spring の場合

# application.properties
spring.messages.encoding=UTF-8

8. Git との兼ね合い

.gitattributes でテキストファイルの改行コードを統一:

# .gitattributes
* text=auto eol=lf
*.java text eol=lf
*.properties text eol=lf

既存ファイルの一括変換

Eclipse では既存ファイルのエンコーディング変換ができませんが、コマンドラインで変換できます:

# Shift_JIS → UTF-8 に変換(iconv を使う)
find . -name "*.java" -exec iconv -f SJIS -t UTF-8 {} -o {}.utf8 \; -exec mv {}.utf8 {} \;

# nkf を使う(日本語環境でより信頼性が高い)
find . -name "*.java" | xargs nkf -w --overwrite

チェックリスト

  • ワークスペースのエンコーディングが UTF-8 か
  • プロジェクトのエンコーディングが UTF-8 か
  • eclipse.ini-Dfile.encoding=UTF-8 を追加したか
  • 実行設定のエンコーディングが UTF-8 か
  • pom.xmlsourceEncoding を設定したか

まとめ

文字化けの解決は「ワークスペース → プロジェクト → 実行設定」の順に確認します。新規プロジェクトを作る前にワークスペースを UTF-8 に設定しておけば、多くの問題は最初から防げます。