前提
Run Commandを用いてEC2インスタンス上に配置してあるbashスクリプト経由でJavaのクラスモジュールを実行する。
現象
Run Commandの結果に出力される日本語(マルチバイト文字)がすべて?に置き換わってしまう。
確認作業
Javaクラスモジュールを呼び出しているbashスクリプトで以下を実行すると空文字が返ってくる。
echo $LANG
Javaクラスモジュール内からデフォルトエンコーディングを確認してみる。
System.out.println(System.getProperty("file.encoding"));
結果は ANSI_X3.4-1968
が返ってきた。
対策
Javaクラスモジュールを呼び出しているスクリプト内に以下を記述する。
export LANG='ja_JP.UTF-8'