テキストとバイナリって言葉を知ってますか?
コンピュータを使ってると、良く聞く言葉です。
文字コードだけを使ったものをテキストといいます。
インターネットメールは、元々テキストを送受信するだけのものでした。
ワープロ文書や画像データ(gif, jpeg, png)等は、文字コード以外の情報が含まれています。
どんな情報が含まれているかは、その形式によって様々ですから一概には言えません。例えば、ワープロ文書なら文字の大きさやフォント情報が入っているだろうし、画像データなら色の具合など、色々と入っていることでしょう。文字コード以外の情報があるのでテキストではありません。
これらをまとめてバイナリといいます。テキストのつもりでバイナリを扱うと、場合によってはメチャクチャになります。色々と誤動作を引き起こす事もあります。
インターネットメールでは本来テキストしか送れませんが、なんとかしてバイナリを送る方法が考え出されました。これに関しては、[10]で説明します。
テキストファイルと言いながら、特別な情報を含んでいるいて、文字化けと勘違いする場合があります。
逆に、バイナリかと思っていたら、実は中身はテキストである事もあります。
マシンやソフトがテキストとバイナリを勘違いすることもあります。
MacOS (漢字Talk含む)は、独自性の高いファイル形式を使っています。データフォーク、リソースフォークという2つの部分から成り立ちます。場合によっては、オマケ情報としてコメントとかアイコン等のデータが付いている場合もあります。
ネットワーク上でやり取りする場合、MacBinary, AppleSingle, AppleDouble, BinHex等の特別な形式に変換することがあります。普通のテキストのつもりが、実はMacBinaryだったりすると、バイナリファイルとして扱われるかもしれません。
MacOS用のソフトを色々調べてみましょう。これらの方式を選択する設定があるかもしれません。
一般的に、他のコンピュータではデータフォーク以外は必要ないので、ここだけを取り出さなければ扱えないかもしれません。なお、Mac OS Xはリソースフォークはあまり使わない傾向があります。
CP/M、DOS、OS/2、Windows等では、テキストファイルの最後に「ファイルのおわり(EOF)」という意味で、SUBというコードを付加する場合があります。文章の最後に^Zと表示されたり、ソフトがバイナリと勘違いしたりします。
テキストエディタに「^Zを付ける/付けない」の設定があるかもしれません。
UNIXではマニュアルを見やすくする為に、BSなどのコードを混ぜることがあります。
ハイパーテキスト (text/html)という形式は、主にWebページ等で使われます。文字の強調を表したり出来るので、表示ソフト(Webブラウザ)はそれに応じて太字にしたり色を付けたり下線を引いたりします。URLを埋め込むことが出来ます。更に後から拡張されて画像も埋め込む事が出来るようになりました。
表示ソフトによって見え方が大幅に異なり、ワープロっぽく見える場合もありますが、その正体はテキストです。
あと、 エンリッチド テキストという形式は、文字を装飾する事が出来るのでワープロみたいに見えるんですが、その正体はテキストです。
他にも、印刷に使うポストスクリプトとか、画像に使うxbm, xpm等の正体はテキストです。
AppleSingleとAppleDoubleについては、RFC1740が詳しいです。
BinHexについては、RFC1741が詳しいです。
かつてリッチテキスト(text/richtext)という形式があり、これが改定されてエンリッチドテキスト(text/enriched)になりました。だから、エンリッチドテキストの事を古い名称でリッチテキストと呼ぶ場合が多いです。
また、これとは全く別の形式にリッチテキストフォーマット(text/rtf)というのがあります。
更に、ハイパーテキスト(text/html)の事をリッチテキストと呼んでいる実例もあります。