Windows のコマンドプロンプトで Java の文字化けが発生したときに UTF-8 に戻す方法
こんばんは、Aliceです。インフルエンザが流行っていますが、ついに私もインフルエンザA型に感染してしまいました…
みなさんも風邪には気をつけてくださいね💦
さて、今回は、Java のコンソール出力が文字化けして「なんで!?」となった経験がある人向けに、
Windows の cmd で UTF-8 に戻す最速の方法をまとめます。
❗ なぜ文字化けするのか
Windows のコマンドプロンプトは、デフォルトで Shift_JIS (cp932) が使われています。
一方 Java は最近のバージョンだと 標準出力が UTF-8 になっています。
つまり、
Java(UTF-8) → コマンドプロンプト(Shift_JIS)
の文字コード不一致で文字化けが発生します。
✅ 対処法:コマンドプロンプトの文字コードを UTF-8 に変更する
1. コマンドプロンプトで以下を実行するだけ
chcp 65001
これで cmd の文字コードが UTF-8 になります。
-
chcp→ 文字コードページ変更 -
65001→ UTF-8 のコードページ番号
⏱ すぐ直るか確認してみる
UTF-8 に変更後、Java プログラムを実行すると文字化けが解消されます。
java Main
改善していればOK。
🎯 毎回設定するのが面倒な人向け(常に UTF-8 にする)
■ 方法1:PowerShell を使う
PowerShell は標準で UTF-8 なので、そもそも文字化けしません。
→ cmd の代わりに PowerShell を使うのが最も簡単。
■ 方法2:起動時に自動で UTF-8 にする(cmd のみ)
ショートカットを作って、起動時に自動で chcp 65001 を実行させる方法もあります。
- デスクトップで右クリック → 新規作成 → ショートカット
- “項目の場所” に以下を入力
cmd /k chcp 65001 - 名前をつけて保存(例:UTF-8 cmd)
これで、UTF-8 で開く cmd が完成します。
📝 まとめ
- Java(UTF-8)と cmd(Shift_JIS)が不一致で文字化け
-
chcp 65001で UTF-8 に変更すれば即解決 - 毎回面倒なら PowerShell or UTF-8 cmd を使う
Windows + Java の初学者が必ず通るポイントなので、困っている人の参考になれば嬉しいです!