一般に「メールの文字化け」といっても様々な文字化けの仕方があり、様々な原因が考えられます。
一番よくあるのは、漢字コード・文字コードによるものです。
日本語を表すのに使われる漢字コードは、主に次の3つです。
ShiftJIS
日本語 EUC
JIS
パソコンでは、ShiftJIS が使われます。この ShiftJIS や EUC などの漢字コードは、8bit
です。
また、圧縮ファイルやプログラムファイル、画像ファイルなどの「バイナリ」ファイルも 8bit です。
しかし、インターネットでメールを送受信するためのメッセージ形式の規格では、7bit ASCII文字のテキストしか許されていませんでした。そのため、日本語で書いたメールは、必ず
7bit である JIS で送受信を行うように決められました。
パソコンでメールを書くと、通常 ShiftJIS で文章を作成します。
このままでは 8bit ですので、インターネットで送ることができません。
そのため、送信側で使っているメールソフトが送信時にそれを JIS に変換して送ってくれます。
そして、今度は受信側で使っているメールソフトが、JIS で受信したメールを ShiftJIS に戻して表示してくれます。
そのようにして、日本語でのメールのやりとりができるわけです。
また、バイナリファイルは、MIME という規格により、一度 7bit に変換して送り、受信側でまた
8bit に戻す、という作業を行う事で、インターネットでやりとりできるようになりました。
しかし、もし送信側のメールソフトで JIS ではなく ShiftJISで送る設定になっていたり、あるいは受信側のメールソフトが JIS で送られてきたメールを正しく
ShiftJIS に戻す事ができなかったりすると、いわゆる文字化けが発生します。
つまり、EUC や JIS の状態で表示されてしまうのです。
パソコンで EUC や JIS コードで作成された文章を見ると、以下のような表示になります。
EUC に対応していないソフトで EUC で作成された文章を見ると。。。
JIS に対応していないソフトで JIS で作成された文章を見ると。。。
この場合、漢字コードを ShiftJIS に変換することで問題は解決します。
しかし、それ以前に、
- 送信者側で、必ず JIS で送ること
- 受信者側で、漢字コードの変換がきちんとできるメールソフトを使うこと
を心がけるのが、文字化けを防ぐ重要なポイントなのです。
また、文字コードの指定誤りも文字化けの原因となります。
日本語でやりとりするには、JIS、つまり ISO-2022-JP
という文字コードで送る必要があります。
日本語で書いた文章を、例えば「西ヨーロッパ言語」で指定して送ってしまうと、受信側のメールソフトによっては文字化けしてしまいます。
試しに、あるメールソフトで、日本語で文章を作成し、「西ヨーロッパ言語」を指定してメールを送信し、同じメールソフトでそのメールを受信してみました。
すると、以下のように文字化けをしていました。
これでは、本当はなんと書いてあったのか分かりません。
このメールのヘッダを見ますと、Content-Type: text/plain; charset=ISO-8859-1
とあります。
このメールソフトでは、送信する言語の設定を「日本語 JIS/送信」にしておかないと、JIS で送信することができないのです。
同じように、 Content-Type: text/plain; charset="us-ascii" という文字コードで送信した場合も、以下のように文字化けします。
文字コードの指定の誤りによって受信されたメールは、文字コードの変換に強いメールソフトを使っていない限り、ほとんど読むことはできず、送信元に正しい指定で再度送信しなおしてもらわなければいけなくなります。ご注意ください。
心配であれば、自分から自分あてにメールを送信してみましょう。
受信したメールヘッダを確認して、Content-Type: text/plain; charset=ISO-2022-JP となっていれば大丈夫です。
他に、「ファイル添付」による文字化けも考えられます。
メールヘッダに Content-Type: multipart/mixed とあれば、テキストに、バイナリが添付されたメールが送られてきています。
バイナリファイルをメールに添付すると、MIME の規定により 7bit に変換(エンコード)されます。
エンコード・デコード方式には、Base64、UUencode、BinHex など種々のものがあり、メールソフトによって、対応している方式に違いがありますので注意してください。
例えば、Base64 方式に対応したメールソフトで、メッセージを作成し、JPEG 形式の画像(バイナリファイル)を添付したとします。
すると、JPEG 形式の画像は、Base64 の形式にエンコード(7bit 化)され、メールに添付して送られます。
受信側は、Base64 方式に対応したメールソフトで受信します。
すると、そのメールソフトが JPEG 形式の画像をデコード(8bit 化)して、元のファイル形式に戻します。
そうすれば、受信側はその画像を見ることができるのです。
しかし、もし Base64 方式に対応していないメールソフトで受信したら、それをデコードツールで 8bit
に変換してあげなければなりません。
Base64 方式でバイナリファイルが添付されている場合、そのメールには、以下のような表記があります。
それが延々と続いてこのように終わっています。
これをファイルに保存して、デコードツールで変換すれば、やはり画像をみることができます。
デコードツールには、WinZip、StuffIt
Expander などがあります。(デコード方法はそれぞれのソフトのヘルプ、マニュアル等をご覧ください。)
メールをサーバに残す設定で受信しているならば、添付ファイルのあるメールのエンコード方式に対応しているメールソフトで受信しなおすと簡単かもしれません。
その他にも、文字化けの原因は考えられます。
例えば、メールを改行しないで長々と書いてしまいますと、メールソフトによってはメールの一部を文字化けさせてしまうことがあります。一般にメールは、日本語で
35 文字、半角文字で 70 字程度で改行するのが望ましいとされています。
また、半角カナはインターネットでは原則的に使用できないと考えてください。半角カナを使用したメールも、通過するメールサーバによっては文字化けの原因となります。
機種依存文字も文字化けを起こします。
|