ベストアンサー1
すべてのファイルは1と0で構成され、それぞれをビットと呼びます。 「バイト」は8ビットです。 8ビットの場合、1と0の組み合わせが256個可能です。
プレーンテキストファイルのデータ(つまり、nano
編集するデータ(端末で使用されると予想される出力cat
))はバイトに分割されます。通常、ファイル内の各文字は1バイトを構成します。たとえば、ASCIIエンコーディングでは、文字「A」はバイト01000001です。一部の文字エンコーディング(UTF-8など)には256文字以上を含める必要があるため、文字を表すために複数のバイトを使用しますが、ファイルをバイトに変換します。 (改行用の「Control-J」などの「制御文字」のバイトもあります。)
イメージはテキストファイルではなくバイナリファイルです。これらのビットはバイトに分割することもできますが、これらのバイトは文字/文字を表すためのものではありません。
非テキストファイルがテキストファイルとして開かれると、テキストエディタはバイナリファイルのバイトを文字を表すかのように解釈しようとします。これを意図していないため、バイナリファイルのバイトとファイルが実際にテキストファイルである場合、同じバイトが表す文字との間にはかなり大きなランダム相関があります。しかし、これはnanoがファイルを解釈しようとするものなので、ランダムな文字を取得し、そのほとんどは通常印刷する意図がない制御文字なので奇妙な結果が発生します。
とにかく、私は何が起こっているのか理解する方法です。私はコンピュータ科学者ではないので、必要に応じてコメント作成者が私の答えを改善できることを願っています。
もちろん、画像を編集するには、テキストエディタではなくgimpやkritaなどの画像エディタを使用する必要があります。私はあなたがバイナリエディタや16進エディタなどを使用していると仮定することができますが、そのためには、画像フォーマットが表すデータをビットとバイトに変換する方法の非常に詳細な理解が必要です。これは画像フォーマットによって異なると仮定する。