デフォルトエンコーディングを確認する

広告

Java では使用している環境毎に file.encoding プロパティにデフォルトのエンコーディングが設定されています。例えば Windows 環境で使用している場合、デフォルトエンコーディングは MS932 となっています。プログラムをコンパイルする場合など、明示的エンコーディングを指定しない場合はデフォルトのエンコーディングが使用されているものとしてソースファイルが読み込まれてコンパイルが行われます。ここではまず自分の環境のデフォルトのエンコーディングを確認する方法について解説します。

デフォルトエンコーディングを確認する

デフォルトのエンコーディングは開発に使用している環境によって異なります。自分の環境におけるデフォルトのエンコーディングを確認するには、 file.encoding プロパティに設定されているエンコーディングを出力してみることで確認できます。

それでは file.encoding プロパティを出力する簡単なプログラムを作成します。テキストエディタで次のプログラムを記述し、 JSample1_1.java として保存してください。

class JSample1_1{
  public static void main(String[] args){
    System.out.println(System.getProperty("file.encoding"));
  }
}

コマンドプロンプトから作成したソースファイルをコンパイルを行い、その後でプログラムを実行してください。

デフォルトエンコーディングを確認する(1)

Windows 10 の環境では MS932 と表示されました。これが Windows 環境で利用している場合のデフォルトエンコーディングとなります。 MS932 というエンコーディングは windows-31j とも呼ばれるエンコーディングで Shift_JIS を拡張したものです。厳密には MS932 と Shift_JIS は異なりますが、 Shift_JIS と同等と考えて説明を行います。

Windows 環境で Java の開発を行う場合にはデフォルトのエンコーディングが MS932(Shift_JIS) なので、日本語が含まれるようなプログラムであってもソースファイルとして保存する時にエンコーディングとして Shift_JIS を指定して保存すれば問題ありません。もし MS932 とは異なる UTF-8 などを指定して保存する場合には明示的に UTF-8 を使用していることを指定する必要があります。

サンプルコード

では実際に簡単なプログラムを作成して試してみます。テキストエディタで次のプログラムを記述し、 JSample1_2.java として保存してください。この時、エンコーディングとして Shift_JIS を選択してください。

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

コマンドプロンプトから作成したソースファイルをコンパイルを行い、その後でプログラムを実行してください。

デフォルトエンコーディングを確認する(2)

日本語で記述された文字列を画面に出力するプログラムですが、文字化けすることもなく問題なく画面に出力されました。

今度は別のエンコーディングを使ってソースファイルを保存してみます。テキストエディタで次のプログラムを記述し、 JSample1_3.java として保存してください。この時、エンコーディングとして UTF-8 を選択してください。

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

コマンドプロンプトから作成したソースファイルをコンパイルを行ってください。その後でプログラムを実行してください。

デフォルトエンコーディングを確認する(3)

コンパイルは問題なく行えましたが、プログラムを実行すると画面に出力された文字列が文字化けをしていました。使用されているエンコーディングがデフォルトエンコーディングの MS932 として扱われているためです。

このようにご自身の環境で設定されているデフォルトエンコーディングを使用する場合は問題ありませんが、別のエンコーディングを使用する場合には次のページで解説する方法でソースファイルのエンコーディングを指定する必要があります。

-- --

自分の環境のデフォルトのエンコーディングを確認する方法について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。