Javaプログラムを実行した時に起こる日本語の出力結果の文字化けについて説明しています。
Javaプログラムを実行した時、出力結果の日本語が文字化けすることがあります。
これは、「Javaソースの文字コード」と、「出力側アプリケーションの文字コード」が一致しないことが原因です。
特に、CUI系(コマンドプロンプト、ターミナル等)では、OSによって出力文字コードが異なりますので、それぞれに見合った文字コードで記述して、ソースコードを保存する必要があります。
また、appletviewerとブラウザプラグインではOSに関わらず、文字コードがSJIS固定なので、ソースコードはSJISで保存してください。
日本語を使用しない場合(半角英字と数字/記号のみ)には文字化けしませんので、出力を英数字記号のみに変更する回避方法もあります。
OS |
アプリケーション |
出力側の文字コード |
Windowws |
コマンドプロンプト |
SJIS |
Windowws |
appletviewer |
SJIS |
Windowws |
プラウザ(IE、ネットスケープなど) |
SJIS |
Mac |
Terminal |
UTF8 |
Mac |
appletviewer |
SJIS |
Mac |
プラウザ(safari、ネットスケープなど) |
SJIS |
特に注意が必要なのは赤字で書かれた「CUI系のアプリケーション」です。
それぞれのOSにより、出力文字コードが違いますので、javaコマンドで実行する場合はOSの違いを気にしながらソースコードを保存してください。
メモ帳など代表的なテキストエディタの標準の文字コードはSJISになります。
あえて文字コードを変更しなくても、「コマンドプロンプト」で日本語が文字化けをすることはありません。
miでソースファイルを開きます。
現在編集しているファイルの文字コードは「オプション」>「文字コード」>変更したい文字コードを選ぶと変更可能です。
変更後は保存しなおしてください。
