スキップしてメイン コンテンツに移動

ターミナルが文字化けしたときの対処

概要


 
ターミナルの文字が化けて,正常に表示されなくなることがある.これには,ターミナルを一度閉じて,再度新しいターミナルを立ち上げれば回復するが,煩わしいものである.


 
ここでは,ターミナルを閉じること無く,文字化けの除隊から回復する方法を記す.


文字が表示されない/改行がおかしい


 
ターミナルの設定がエコーなしになってたり,改行(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