端末からバイナリファイルを印刷すると、文字マッピングはどのように変更されますか? [コピー]

端末からバイナリファイルを印刷すると、文字マッピングはどのように変更されますか? [コピー]

cat誤ってバイナリを実行しました。 (起こる)。
通常、をクリックすると、ランダムなUnicode文字がたくさん表示されますCtrl+C。ファイルの文字が隣にある
ため、着信音がランダムに聞こえることがあります。'\' 'a'

今回は全体の文字マップが変更されました(私の考えでは)。 (画像は
Ctrl + Cを押して入力する前のdファイルの一部を表示します) catlsここに画像の説明を入力してください。

問題は簡単に解決できますが、原因が何であるかを知りたいです。
同じ効果を得るには、端末に何を入力する必要がありますか?

関連がある場合を使用しており、gnome-terminal私のシェルはですzsh

ベストアンサー1

これはおそらくターミナルエスケープシーケンスです。これを抽出して1つずつ印刷して、特定のシーケンスが衝突を引き起こしているかどうかを確認できます。

#!/usr/bin/env perl
use strict;
use warnings;

# turn off any encoding foo
use open IO => ':raw';

# "slurp" mode for whole file reads
local $/;

# for any STDIN or files given to us...
while (readline) {
    # extract ESC-followed by a number of not-ESC not-NUL characters...
    while (m/(\e[^\e\0]+)/g) {
        printf "what does '%vx' do?\n", $1;
        print $1;
        # is a listing borked or not?
        print qx(ls);
        sleep 1;
    }
}

おすすめ記事