メールでのやり取りに限らず、データのやり取りは苦労が多いでしょう。
ここでは、文字コード変換、バイナリ→テキスト変換、圧縮/伸長ソフト、アーカイバ等を紹介します。
括弧()内は、一般的に使われている拡張子を示しますが、別にインターネット関連規格できっちり決まっているものではありません。
様々な文字コードのテキストファイルのサンプルです。
JIS、EUC-JP、Shift_JISやマックバイナリ付き等がまとまっています。
行の区切りが異なるサンプルもあります。
一番上のビットの落ちたサンプルもあります。手持ちの色々なソフトで表示して、果てしない文字化けの旅に出ましょう。
nkfは、ISO-2022-JP、EUC-JP、Shift_JISの日本語文字コードを相互に変換するツールです。
ESCの落ちたJISも修復出来ます。オリジナルはC言語のソースで公開されており、ほぼ全てのCコンパイラでコンパイル可能です。
最近はUnicodeへの対応も進められています。
バイナリファイルを2進数や16進数で表示したり編集するツールがあります。バイナリビューア、バイナリダンプ、16進エディタとか、色々な呼ばれ方をします。
文字化けの原因が判らないとき、これらのツールで徹底的に調べると判るかもしれません。
UNIXの場合、odというコマンドが有名です。
他のコンピュータでも色々なツールがあるようです。
(.uu or .uue)
UNIXで一般的に使われているツールです。
uuencodeでバイナリ-テキスト変換し、uudecodeで元に戻します。簡単な説明を[10.2.1]に書きました。
(.hqx)
MacOSで使われているバイナリ-テキスト変換ツールです。
簡単な説明を[10.2.2]に書きました。MacOS以外で使うときはデータフォークやリソースフォークの扱いに注意してください。
RFC2822で決められたヘッダはASCIIのみを扱い、それ以外のときはMIMEの決まりを使う事になっています。
ISO-2022-JPの場合は"B" encodingを使うのが一般的です。説明は[8.3]を見てください。
latin1等の場合は"Q" encodingを使うのが一般的です。説明は[11.5.4]を見てください。
これらをもとに戻すには、上で紹介しているnkfが使えます。
MIMEでは、ヘッダのパラメータに"B" encodingを使うのも"Q" encodingを使うのも禁止です。そこでRFC2231という文書で、パラメータ専用のエンコーディング法が考えられました。
簡単な説明を[8.3.3]に書きました。
MIMEの決まりでは、本文中の8ビットを7ビットに変換する方法が2種類あります。
base64は主にバイナリデータに使うものです。説明は[10.2.3]を見てください。
quoted-printableは主にlatin1等に使うものです。説明は[11.6.4]を見てください。
メールソフトにbase64やquoted-printableの機能が取り込まれている場合もありますが、ここで紹介するツールは手動で扱えます。Mpack/munpackは多くのコンピュータで動き、共通のソースも公開されています。
(.Z)
UNIXで一般的な圧縮ツールです。
一つのデータしか圧縮出来ないので、tarと組み合わせることがあります。この場合拡張子は.tar.ZになりますがDOS等では扱えないので.tazとすることがあります。
compressで作った.Zファイルはgzipでも伸長できるので、gzipを入手してください。
(.gz or .z)
UNIXでよく使われる圧縮ツールです。
昔は拡張子に小文字の.zを用いていましたが、compressの大文字の.Zと紛らわしいので、現在は.gzが勧められています。一つのデータしか圧縮出来ないので、tarと組み合わせることがあります。この場合拡張子は.tar.gzになりますがDOS等では扱えないので.tgzとすることがあります。
compressで作った.Zファイルはgzipでも伸長
出来ます。なお、zipとgzipは別なので注意してください。
(.bz2)
最近、徐々に使われはじめている圧縮ツールです。
compressやgzipと同じように、一つのデータしか圧縮出来ないので、tarと組み合わせることが多いようです。一つのデータしか圧縮出来ないので、tarと組み合わせることがあります。この場合拡張子は.tar.bz2になりますがDOS等では扱えないので.tb2とか.tbzにしているのをみかけます。
(.tar)
UNIXで一般的なアーカイバです。
複数のファイルを一つにまとめるだけであり、圧縮はしません。圧縮したい時はcompressやgzipやbzip2と組み合わせるケースが多いです。
GNU tarというツールの場合、compressやgzipやbzip2を呼び出して、アーカイブと圧縮を両方行なう事が出来ます。
(.lzh or .lha)
日本国内でよく使われているアーカイバであり、同時に圧縮も出来ます。
同じLHAでも実は色々な形式があって、ヘッダ形式は1か2、圧縮形式はlh5が無難なようです。lh0は非圧縮です。
日本国外では.lhaという拡張子を使うことがありますが、開発者は.lzhを推奨しています。
(.zip)
世界中でよく使われているアーカイバであり、同時に圧縮も出来ます。元々はDOS用のシェアウェアがオリジナルですが、Info-ZIP等のフリーの互換ソフトが多数あるので安心です。とても沢山のコンピュータをサポートしているし、ソースも公開されています。
なお、gzipとは別の形式なので注意しましょう。
(.sit or .sitx)
MacOSで一般的なアーカイバであり、同時に圧縮も出来ます。
MacOS以外と送受信するときは、データフォークやリソースフォークの扱いに注意してください。
1.5形式、3.0形式、5.0形式等がありますが拡張子を付けるときはどれも.sitを使います。後から出来たSITX形式は.sitxを使います。
あちこちのftpサイトに置かれているmacutilは、古い形式のstuffitしか展開出来ないようです。
(.cpt)
MacOSで使われるアーカイバであり、同時に圧縮も出来ます。
MacOS以外と送受信するときは、データフォークやリソースフォークの扱いに注意してください。
(.bin)
MacOSのファイル形式は独自性が強いので、そのままネットワーク上で扱うのは難しいのです。
そこで、マックバイナリという方式に変換する場合があります。これは先頭に128バイトの情報が付き、その後にデータフォークが続きます。必要な場合には更にリソースフォークが続き、更にコメントが続きます。
MacOS上では自動的に扱われる場合が多く、あまり気にならないかもしれませんが、他のマシンの場合はツールが必要でしょう。
MacBinaryにはI、II、IIIの3つのバージョンがあります。
WebページのFORMを使って送信されたメール等で使われている方式です。
特に正式な名称は付いていないようですが、URLエンコーディング、URL形式、FORM形式等と呼ばれるようです。
簡単な説明を[11.6.10]に書きました。