概要
ターミナルの文字が化けて,正常に表示されなくなることがある.これには,ターミナルを一度閉じて,再度新しいターミナルを立ち上げれば回復するが,煩わしいものである.
ここでは,ターミナルを閉じること無く,文字化けの除隊から回復する方法を記す.
文字が表示されない/改行がおかしい
ターミナルの設定がエコーなしになってたり,改行(LF)をCR/LFに変換しなくなったりする.
原因)sttyの設定がおかしくなってる
- stty -a すると、正常な場合と異常な場合で何箇所か違ってるはず
- 正常な状態で stty -g した結果を保存しておき,
異常になったらそれを実行する.
- 改行が効かないときは ^J で代用できるはず.
% stty 2d02:5:4bf:8a3b:3:1c:7f:15:4:0:1:ff:11:13:1a:ff:12:f:17:16:ff:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
英字が化ける(SI/SO問題)
誤って SO (0x0E,0/14) を表示すると,英字にあたる領域(GL)にG1領域の文字が呼び出されてしまい,以後英字が文字化けする.
SIを表示すれば治る.
% echo ^V^O
ctrlを押したまま,VOと押す.
英字が化ける(screen問題)
screenを使っている場合,screen側の文字エンコーディングがおかしくなることがある.screenのコマンドで下記のいずれかを指定.
:encoding utf8
:encoding euc