インターネットメールで送れるのは、もちろん、文字(テキストファイル)だけではありません。ワープロや表計算、グラフィックソフトなどのアプリケーションソフトが作成する書類はバイナリファイルと呼ばれ、添付ファイルにすれば送信可能になります。このバイナリファイルは必ず8ビットのデータですから、7ビットのテキストデータに一端変換(エンコードと言います)して、受信する際に、再び、元のバイナリファイルに戻す(デコードと言います)作業が必要になってきます。しかし、様々なサーバーを通過する間にデータの一部に欠落が生じたり、Windows−Mac間で添付ファイルのやりとりを行なう時にエンコードの指定を誤ったり、設定は正しくても(たまたま)受信する際にメールソフトが正しくデコードできない場合(たまにあるらしい)、文字化けすることになります。
バイナリファイルの送信による文字化けについては、Vectorの特集記事:
http://www.vector.co.jp/magazine/spotlight/980824/sl98082414.html
が役に立つでしょう。
文字化けの原因は、何も文字コードの問題だけではありません。機種依存文字や、いわゆる半角カタカナが原因となる場合もあります。
「丸の中に数字が入ったもの」やパーセントが一文字になったものなどは、あなたのパソコンでは正しく表示されても、他の人のパソコンでは正しく表示されない場合があります。こういう文字のことを機種依存文字と言います。機種依存文字の一覧としては、
● 機種依存文字とは?
http://www.shtml.jp/mojibake/machine.html
を参考にしてください。
また、いわゆる半角カナも文字化けの原因になりますので、使わないようにする必要があります。半角カタカナがなぜ文字化けの原因になるかはこちらを参照してください。Webmaster向けに書いていますので、少し専門的な部分がありますが、だいたいは分かっていただけると思います。要は、Shift_JISで半角カタカナを2つ書くとEUC-JPの漢字1文字なのか区別がつかず、EUC-JPで半角カタカナを書くとShift_JISの漢字1文字なのか区別がつかないのです。
この半角カナや機種依存文字を書こうとすると、別の色で表示されるエディターやメールソフトもありますので、そういうソフトを使うと便利ですね。
※ ここでいう「機種依存文字」や「半角カタカナ」が問題になるのは主に、「Shift_JIS」や「EUC-JP」「ISO-2022-JP」の場合です。少なくとも理論上は、Unicode(UTF-8)であれば、機種依存文字も機種依存文字ではありません。この辺りの事情は、「ブラウザ・メールソフト別UTF-8対応状況」をご参照ください。