LoginSignup
1
0

More than 3 years have passed since last update.

日本語を表示するJavaプログラムをコンパイルする時の注意について

Last updated at Posted at 2021-02-20

こんにちは!佐野です。Javaの勉強をしており、私が学んだことを共有できればと思います。
文章の読みにくい所や理解の間違い等、ご指摘・アドバイスを頂ければ幸いです。

使用しているツール

  • Visual Studio Code
  • Java11 ( JDK "11.0.9.1" )
  • OS : Windows10

コンパイル時に文字化けをさせない対応について学んだので、紹介します。

早速、このコードをコマンドラインからコンパイル、実行してみたいと思います。
期待する出力は x+yは15 です 。

public class Main { 
    public static void main (String[] args) {
        int x = 5; 
        int y = 10; 
        String ans = "x+yは"+(x+y) ; 
        System.out.println(ans); 
    }
}

まずは文字化けする例を見てみましょう。コンパイルして...

javac Main.java

実行すると...

java Main

> x+y縺ッ15

文字化けしてしまいました。

今度はコンパイル時にもとのコマンドに少し追加しました。

javac -encoding UTF-8 Main.java

実行すると...

java Main

> x+y縺ッ15

今度は期待通り出力されました!

なぜ-encoding UTF-8が必要かというと、VSCodeの設定にありました。

VS Code のターミナルはシェルからの UTF-8 エンコードされたデータしかサポートしていないため、環境変数 $LANG を UTF-8 準拠のオプションとして検出して設定するかどうかを制御します。
VSCode Setting より引用

また、Windowsは基本 Shift-JISコードのテキストファイルしか扱えません。

Windows環境で作った日本語入りのJavaのソースファイルをLinux環境でコンパイルしたらエラーになった
https://www-tlab.math.ryukoku.ac.jp/wiki/?Graphics/FAQ#v4beed7f

まとめ

VSCodeのコマンドからJavaのソースコードをコンパイルするときには -encoding UTF-8と書き加える必要がある。

読んでいただいてありがとうございました。
Happy coding!! 😄✨

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0