初心者入門ソースファイルのエンコーディングを指定してコンパイルする | Java入門
デフォルトエンコーディング以外のエンコーディングを使ってソースファイルを保存した場合、コンパイルを行う時にエンコーディングを指定する必要があります。ここではソースファイルのエンコーディングを指定してコンパイルを行う方法について解説します。
コンパイル時にエンコーディングを指定する
Java では環境ごとにデフォルトのエンコーディング file.encoding プロパティに設定されており、異なるエンコーディングを使用してソースファイルを保存した場合にはコンパイルを行う時にエンコーディングを指定する必要があります。
コンパイルを行う時にエンコーディングを指定するには javac の -encoding オプションを使います。
エンコーディング名にはソースファイルを保存した時のエンコーディングをを指定してください。
現在使用している JDK のバージョンで、指定できるエンコーディングの一覧は「Supported Encodings」で参照することができます。
先ほどのサイトに掲載されているエンコーディングの中から日本でよく利用されるエンコーディングをいくつか紹介します。
java.nio API用 | java.io/java.lang API用 | 説明 |
---|---|---|
US-ASCII | ASCII | American Standard Code for Information Interchange |
UTF-8 | UTF8 | Eight-bit Unicode (or UCS) Transformation Format |
EUC-JP | EUC_JP | JISX 0201, 0208 and 0212, EUC encoding Japanese |
Shift_JIS | SJIS | Shift-JIS, Japanese |
windows-31j | MS932 | Windows Japanese |
同じエンコーディングであっても java.nio API 用とjava.io/java.lang API 用で別々の記述がされていますが、どちらでも使用できるようです。
ソースファイルを保存する時のエンコーディングとして UTF-8 を使用した場合には次のようにエンコーディングを設定してコンパイルを行います。
それでは実際に試してみます。
-- --
テキストエディタで次のプログラムを記述し、 JSample2_1.java として保存してください。この時、エンコーディングとして UTF-8 を選択してください。
class JSample2_1{ public static void main(String[] args){ System.out.println("こんにちは"); } }
コマンドプロンプトから作成したソースファイルをコンパイルを行います。最初はエンコーディングを指定せずにコンパイルを行ってください。その後でプログラムを実行してください。
javac JSample2_1.java
コンパイルは行えましたが、プログラムを実行すると画面には文字化けしたような文字列が出力が行われました。
次に同じソースファイルをエンコーディングとして UTF-8 を指定してコンパイルを行います。その後でプログラムを実行してください。
今度は文字化けされずに画面に文字列が出力されました。このように自分の環境のデフォルトエンコーディングとは別のエンコーディングを使ってソースファイルを保存した場合でも、コンパイルの時に -encoding オプションを付けることで正常に動作するクラスファイルを作成することができます。
-- --