LoginSignup
6
4

More than 5 years have passed since last update.

PC画面(tty)から繋いだときの文字化けを何とかする

Last updated at Posted at 2018-02-07

PCに直接接続されているモニター上のコンソール(以後tty)は、基本的に日本語表示に対応しておらず、OSのロケールを日本向けに設定すると文字化けに悩まされること必至です。
そこでいくつか対策を考えてみました。

その場しのぎ

export LANG="C"`

とコマンド打って環境変数LANGを変更すれば、とりあえずは英語出力となり、最小限の対応はできるようになります。
(なおLANG=C は既定値を使うという意味で、英語にするという意味ではないので念の為。)

tty使用時のみ文字化け回避

ttyからログインされた場合のみ環境変数LANGを変更するようにして、
tty上では文字化けを回避、ssh接続時は日本語出力されるように出来ました。

~/.bashrc
#末尾に追加
#ttyコマンドの出力に"tty"が含まれていた場合`export LANG="C"`を実行する
(tty|fgrep -q 'tty') && export LANG="C"

※全ユーザーを対象とする場合は/etc/bash.bashrc(debian系) /etc/bashrc(redhad系)を修正。

tty自体を日本語表示に対応させる→放棄 :sweat_smile:

理想なんですが、以下の理由により諦めました。
- 日本語表示対応のターミナルエミュレータを、怪しい方法で稼働させることで対応できるようだが、その怪しい方法自体にセキュリティ上の問題がある。
- 日本語フォントも入れなければならない。
- そもそもttyを使う機会が少ない(ワークステーション用途ならX入れるだろうし、サーバー用途ならssh使うだろうし)

どうしてもというなら、fbtermで検索してみてください。

言語の既定値自体を変える→放棄

localectl コマンドや、ディストリビューション付属の設定ツール(Raspianならraspi-configとか)を使用してロケール自体を文字化けしない言語に変える方法。
この方法だと確実に解決出来ますが・・・日本語表示を諦めるということなんで、
sshやtelnet経由でも常に英語出力とかになってしまいます。
sshであればターミナル側のフォントを利用して日本語表示を行えるため、ロケールまでいじるのはちょっと大げさな気が...

参考文献

ttyとかptsとかについて確認してみる

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4