単純なテキスト以上のファイルに対してcatを実行すると、多数の文字が返されます(ほとんどは次のようになります)。このデータは何ですか?
答え1
テキスト以外のファイルの多くのデータは、使用可能な文字セットの文字を使用して表現できません。このデータをcatとして処理して画面に表示すると、他の表示方法がないため、���などの意味のない文字で表示されます。
答え2
実際、彼は「意味のないキャラクター」ではない。これはUnicodeです文字を置き換える。正当なUTF-8コードではなくバイトを表示しようとすると、UTF-8エンコーディングを使用する端末に表示されます。それ可能端末で使用可能なフォントが特定のフォントを提供していない場合に表示されます。 (しかし、その可能性は非常に低いです。)正当なUnicode値ですが、この場合は空になる可能性が高いです。
通常、コード32-126(US-ASCII、POSIX Portable Character Set)を印刷できます。コード160-255はISO-8859-1エンコードで印刷できますが、いいえUTF-8でエンコードされたUnicode値を構成する2つ以上のバイトの1つであるため、UTF-8として使用されます。同様に、コード128-159はISO-8859-1(および非印刷)の制御文字ですが、UTF-8では2つ以上のバイトのうちの1つです。
テキスト以外のファイルがある場合は、cat
128〜255の範囲のバイトがある可能性があり、そのバイトは正当なUTF-8値を形成する可能性はありません。だからあなたは見るでしょう。
追加資料: