概要
- macOS の iTerm2 から CentOS6 環境にログインしたところ日本語が文字化けした
- iTerm2 の Set locale variables automatically のチェックを外したところ解決した
環境
ローカル: macOS, iTerm2
リモート: CentOS 6.5
現象
-
ログイン時に以下のメッセージが表示された
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): そのようなファイルやディレクトリはありません
-
vi で開いた日本語ファイルが文字化けした
-
LC_CTYPE が UTF-8 になっている (ja_JP.UTF-8 になっていてほしい)
$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=en_US.UTF-8 LC_CTYPE=UTF-8 LC_NUMERIC="en_US.UTF-8" 以下省略
対処
-
リモート側の/etc/sysconfig/i18n を編集
-LANG="en_US.UTF-8" +LANG="ja_JP.UTF-8"
-
ローカル側で iTerm2 の設定から
Set locale variables automatically
のチェックを外すPreferences > Profiles > Terminal > Environment > Set locale variables automatically
-
iTerm2 のターミナルを再起動・再接続したところ解決した
$ locale LANG=ja_JP.UTF-8 LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" 以下省略