Linux上のソースコードやコンソール出力をターミナルで正常に表示するには、OS・ソースコード・ターミナルの3つが同じ文字コードである必要です。
そうでなければ文字化けを起こします。文字化けにハマって時間を使ってしまうケースが多いので対処方法をまとめておきます。
ターミナル確認
OK。RLOGINではGUIで設定できます。
OS文字コードの確認
まずはOSの確認
$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.5 (Maipo)
続いて文字コードの確認。デフォルトはUTF-8でした。
$ echo $LANG en_US.UTF-8
RHEL7.5にSJISを追加
RHEL7.5ではデフォルトで選択可能な文字コードにSJISがありません。
$ locale -a | grep ja ja_JP ja_JP.eucjp ja_JP.ujis ja_JP.utf8 japanese japanese.euc
スーパーユーザーに変更して
$ sudo su -
対象のロケールリソースをコンパイルして使用できるロケールを追加します。
# localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS character map `SHIFT_JIS' is not ASCII compatible, locale not ISO C compliant
tomcatユーザーに戻って
# exit $ sudo su - tomcat
SJISができていることを確認します。
$ locale -a | grep ja ja_JP ja_JP.eucjp ja_JP.sjis ja_JP.ujis ja_JP.utf8 japanese japanese.euc
出来てることを確認できたら設定します。
export LANG=ja_JP.sjis
設定できてか確認します。
$ echo $LANG ja_JP.sjis
ソースコード
SJISで読み書きできるように作成したソースコード(ファイル)であることが必要です。上記の設定でソースコードを表示し、文字化けが起きていなければOKです。
これで無事にRHEL7系でSJISを使うよう設定することができました。