Help us understand the problem. What is going on with this article?

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

バイナリファイルを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?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした