Javaプログラムを実行した時に起こる日本語の出力結果の文字化けについて説明しています。

1 文字化けの原因

Javaプログラムを実行した時、出力結果の日本語が文字化けすることがあります。

これは、「Javaソースの文字コード」と、「出力側アプリケーションの文字コード」が一致しないことが原因です。

特に、CUI系(コマンドプロンプト、ターミナル等)では、OSによって出力文字コードが異なりますので、それぞれに見合った文字コードで記述して、ソースコードを保存する必要があります。

また、appletviewerとブラウザプラグインではOSに関わらず、文字コードがSJIS固定なので、ソースコードはSJISで保存してください。

日本語を使用しない場合(半角英字と数字/記号のみ)には文字化けしませんので、出力を英数字記号のみに変更する回避方法もあります。

2 出力側の文字コード一覧

OS

アプリケーション

出力側の文字コード

Windowws

コマンドプロンプト

SJIS

Windowws

appletviewer

SJIS

Windowws

プラウザ(IE、ネットスケープなど)

SJIS

Mac

Terminal

UTF8

Mac

appletviewer

SJIS

Mac

プラウザ(safari、ネットスケープなど)

SJIS

特に注意が必要なのは赤字で書かれた「CUI系のアプリケーション」です。

それぞれのOSにより、出力文字コードが違いますので、javaコマンドで実行する場合はOSの違いを気にしながらソースコードを保存してください。

3 Windows使用時のソースの文字コードについて

メモ帳など代表的なテキストエディタの標準の文字コードはSJISになります。
あえて文字コードを変更しなくても、「コマンドプロンプト」で日本語が文字化けをすることはありません。

4 Mac使用時のソースの文字コード変換方法

miでソースファイルを開きます。

 

現在編集しているファイルの文字コードは「オプション」>「文字コード」>変更したい文字コードを選ぶと変更可能です。
変更後は保存しなおしてください。