IntelliJ IDEAでJavaが文字化けする原因と解決方法|OpenJDK使用時の文字コード設定を確認

Java

IntelliJ IDEAでJavaのプログラムを実行していると、日本語だけが文字化けして表示されることがあります。特にOpenJDK 26など新しいJDKを利用している環境では、ソースファイル・コンパイル・実行時の文字コード設定が一致していないことで問題が発生する場合があります。

Javaの文字化けは、単純にIntelliJ IDEAの設定だけでなく、Javaファイルの保存形式やJVMの文字コード設定など複数の要因が関係しています。この記事では、IntelliJ IDEAでJavaの日本語表示が崩れる場合の確認ポイントと具体的な修正方法を解説します。

Javaで文字化けが発生する主な原因

Javaは内部的にはUnicodeを利用していますが、ソースコードを読み込む段階やコンソールへ出力する段階で別の文字コードが指定されていると、日本語が正しく表示されません。

例えば、JavaファイルをUTF-8で保存しているにもかかわらず、コンパイラや実行環境がShift-JISとして処理すると、「こんにちは」という文字が意味不明な記号や別の文字列として表示されます。

主な原因としては以下のようなものがあります。

  • IntelliJ IDEAのファイル文字コード設定がUTF-8になっていない
  • Javaコンパイラの文字コード指定が不足している
  • 実行時のJVM文字コードが環境依存になっている
  • ターミナルやコンソール側の文字コードが一致していない

IntelliJ IDEAの文字コード設定をUTF-8に変更する

まず確認するべきなのは、IntelliJ IDEA自体の文字コード設定です。

以下の手順で確認できます。

  1. IntelliJ IDEAを開く
  2. FileメニューからSettingsを開く
  3. EditorのFile Encodingsを選択する
  4. Global EncodingをUTF-8に変更する
  5. Project EncodingもUTF-8に変更する

設定画面では「Transparent native-to-ascii conversion」などの項目もありますが、日本語を扱う通常のJava開発ではUTF-8設定にしておくことで問題が解決することが多いです。

設定変更後は、既存のJavaファイルを開き直して、文字コードが正しく認識されているか確認してください。

Javaコンパイラの文字コードを指定する

IntelliJ IDEAでコンパイルするときに、Javaコンパイラへ明示的にUTF-8を指定すると文字化けを防ぎやすくなります。

設定方法は以下の通りです。

  1. Settingsを開く
  2. Build, Execution, Deploymentを選択する
  3. Compilerを開く
  4. Java Compilerを選択する
  5. Additional command line parametersに「-encoding UTF-8」を入力する

この設定を入れることで、コンパイル時にJavaファイルをUTF-8として処理するようになります。

例えば以下のようなコードで日本語を表示する場合、コンパイル時の文字コードがずれると正常に表示されません。

public class Main {
public static void main(String[] args) {
System.out.println("こんにちは");
}
}

JVMの実行時文字コードをUTF-8に固定する

OpenJDK 26を使用している場合、実行環境によっては標準文字コードが異なる場合があります。そのため、JVM起動時にUTF-8を指定すると安定します。

IntelliJ IDEAでは、実行構成(Run Configuration)のVM optionsに以下を追加します。

-Dfile.encoding=UTF-8

これによりJavaの実行時に使用されるデフォルト文字コードをUTF-8へ変更できます。

特にWindows環境では、OS側の標準文字コードがUTF-8ではない場合があるため、この設定が有効になることがあります。

IntelliJ IDEAのコンソール表示設定を確認する

プログラム自体が正常でも、IntelliJ IDEAの実行コンソール側で文字コードが合っていない場合があります。

以下の設定を確認してください。

  1. Helpメニューを開く
  2. Edit Custom VM Optionsを選択する
  3. 必要に応じてUTF-8関連の設定を確認する

また、Windowsのコマンドプロンプトなど外部ターミナルで実行している場合は、ターミナル側の文字コードも確認が必要です。

例えばWindowsのコマンドプロンプトでは、以下のコマンドでUTF-8へ変更できます。

chcp 65001

Javaファイル自体の保存形式を確認する

設定を変更しても改善しない場合は、Javaファイルそのものが別の文字コードで保存されている可能性があります。

IntelliJ IDEAでは、画面右下に現在のファイル文字コードが表示されます。ここがUTF-8以外になっている場合はUTF-8へ変更してください。

例えば、以前作成したJavaファイルをコピーした場合、Shift-JISで保存されたままになっていることがあります。その場合はUTF-8へ変換して保存し直すことで改善できます。

OpenJDK 26使用時に確認したいポイント

OpenJDKのバージョン自体が文字化けの直接原因になることは少なく、多くの場合は文字コード設定の不一致が原因です。

ただし、新しいJDKでは以前のJava環境と動作が変わる部分もあるため、古い設定を引き継いでいる場合は確認が必要です。

Java開発では、JDKのバージョンに関係なく「ソースコード」「コンパイル」「実行環境」の3つで同じ文字コードを利用することが重要です。

まとめ

IntelliJ IDEAでJavaが文字化けする場合、原因の多くはUTF-8設定の不一致です。まずはIntelliJ IDEAのFile EncodingをUTF-8に設定し、必要に応じてJavaコンパイラやJVMの文字コードも指定すると改善できます。

OpenJDK 26を利用している場合でも、正しくUTF-8環境を整えれば日本語を含むJavaプログラムは問題なく実行できます。

文字化けが発生した場合は、どの段階で文字が崩れているのかを確認し、ファイル保存・コンパイル・実行環境を順番に確認することが解決への近道です。

コメント

タイトルとURLをコピーしました