TeraTermでのトラブルについてです。

この記事はQiitaにも転載しています。

問題の概要

WSLを操作する際にTeraTermを使っていたのですが、ある時期から日本語がEmacs上で表示されないことに気付きました。

Windows標準のShellでは表示されているのにおかしい。 最終的にいくつかの問題を発見しました。

  • Windows標準Shellでは、日本語周りの問題なし
  • catすると、どちらもちゃんと日本語が表示される
  • Emacsだと、TeraTermだけ日本語出てこない
  • コマンドライン上でも、TeraTermでだけ日本語が入力できない

キャプチャ.PNG

原因

LC_***という環境変数がダメだったようです。

$ locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE=C
LC_NUMERIC=C
LC_TIME=C
LC_COLLATE=C
LC_MONETARY=C
LC_MESSAGES=C
LC_PAPER=C
LC_NAME=C
LC_ADDRESS=C
LC_TELEPHONE=C
LC_MEASUREMENT=C
LC_IDENTIFICATION=C
LC_ALL=
$ locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE=ja_JP.UTF-8
LC_NUMERIC=ja_JP.UTF-8
LC_TIME=ja_JP.UTF-8
LC_COLLATE=ja_JP.UTF-8
LC_MONETARY=ja_JP.UTF-8
LC_MESSAGES=ja_JP.UTF-8
LC_PAPER=ja_JP.UTF-8
LC_NAME=ja_JP.UTF-8
LC_ADDRESS=ja_JP.UTF-8
LC_TELEPHONE=ja_JP.UTF-8
LC_MEASUREMENT=ja_JP.UTF-8
LC_IDENTIFICATION=ja_JP.UTF-8
LC_ALL=

解決

以下のコマンドを入力すると解決しました。.bashrcにでも書いておくと良いでしょう。

$ export LC_ALL=ja_JP.UTF-8

LC_系の環境変数ってシェル側から自動設定されたりするのかな・・・?