MacのターミナルではUTF8テキストが文字化けせずにみれるのに、他のターミナルからは文字が化けるということがある。ターミナルからlocaleを送る時と、そうでない時があるようだ。
WSL Terminalからだとこんば化け方(あいうえおと書いてる)
localeがおかしいはずなので、localeコマンドをうってみる
# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
いろいろ怒られてる。localeの設定がこと切れてる。じゃぁどのloaleを設定すればいいのさ。
locale -a | less
のコマンドを打てば、利用可能な一覧が出てくる。
export LC_ALL=en_US.utf8
というロケール設定で、だいたいは収まる。
以下、en_US.utf8 にしている理由。
- コマンドの出力結果が日本語だと想定外になるので、英語のままがいい
- US以外の英語もあるが、こだわりはないので、en_USでいい
- 何よりもUTF8の表示がしたいから、UTF8がいい