環境、ファイルごとに文字コードがeuc, utf-8と混在しており、頻繁に日本語が文字化けしていました。
毎回iTerm2の設定画面で切り替えていましたが、面倒なのでコマンドで切り替えれるようにします。
プロファイルを文字コードの数だけ作る
iTermを開いている状態でcmd + ,
でPreferencesを開き、
+ボタンから必要な数だけプロファイルを作成します。
名前は文字コード名がよいでしょう。
コマンドでプロファイルを切り替える
$ echo -e '\033]1337;SetProfile=プロファイル名\a'
で任意のプロファイルに切り替えることができます。
utf-8に切り替えてみる
$ echo -e '\033]1337;SetProfile=utf-8\a'
$ cat test.txt
aaa
あああ
eucに切り替えてみる
$ echo -e '\033]1337;SetProfile=euc\a'
$ cat test.txt
aaa
秧???????
参考:https://www.iterm2.com/documentation-escape-codes.html
シェルに切り替えコマンドを登録する
毎回コマンドを打つのは面倒なのでbash_profileや.zshrcに登録しておきます。
zshrcを更新後、source .zshrc
コマンドやログインし直して設定値を読み込み直します。
alias utf="echo -e '\033]1337;SetProfile=utf-8\aencording:utf-8'"
alias euc="echo -e '\033]1337;SetProfile=euc\aencourding:euc'"
簡単に文字コードを切り替えることができるようになりました。
$ utf
encoding:utf-8
$ cat test.txt
aaa
あああ
$ euc
encoding:euc
$ cat test.txt
aaa
秧???????