LoginSignup
4
4

More than 3 years have passed since last update.

バイナリファイルをcatやtailしてしまいターミナルが文字化けしたときの対処法

Posted at

バイナリファイルをcatで見てみようとしたら、文字化けしてしまい冷や汗をかきました。
Webに転がってる情報をまとめた対処法とaliasの設定を書いていきます。

文字化けした状態

無題.png

対処法その1

reset

resetコマンドで端末をリセットします。これで直らない場合もあるみたいです。
その場合はresetコマンドより強力な方法でリセットします。

対処法その2

echo ^[c

echo「スペース」「Ctrl+v」「Esc」「c」「Enter」と入力する。

aliasの設定

alias clearbin="echo -e '\ec'"

バイナリになったものをクリアするので、単純にclearbinとしました。
echo -eでエスケープ文字を解釈するようにしています。
eが「Esc」になり、cはそのままですね。

豆知識(なぜ直るのか)

対処法その2でなぜなおるのか、全然わかんなかったので調べました。

echo

echo「スペース」「Ctrl+v」を押すとこんな感じになりますね。
「Ctrl+v」は「Esc」を入力するための準備的なもので単体だとなにも表示が出ません。
「Esc」をただ押しても入力できないので、この準備がいるみたいです。

echo ^[

続いて「Esc」を押すと、こうなります。

echo ^[c

それに付け加えて「c」を入力
「Esc」と「c」でresetコマンドより強力な端末のリセットが行えるようです。
最後に「Enter」を押して終了ですね。

「Esc」の表し方

aliasに設定するときに、「Esc」を8進数や16進数で表すことができるようです。

8進数の場合

alias clearbin="echo -e '\033c'"

16進数の場合

alias clearbin="echo -e '\0x1bc'"

参考になった記事

ANSI エスケープシーケンスについて
What does printf(“\033c” ) mean?

4
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
4
4