文字化けを見た目で何となく切り分ける

2011年07月19日 00:39

Notes/Dominoに限ったお話ではないと思うのですがメールの文字化け、と言うのは調査の慣れ・不慣れの差が出やすいエリアなんじゃないかと思います。

 よくあるのが文字化けしたメールを転送メールで添付して調査を依頼するケースですが、どのように化けたかが分かってもヘッダーなどは全部変わってしまうのでほとんど調査には利用できません。まだ画面ショットを送ってきた方が、少なくともどう表示されたかが確実に分かるので調査の上では参考になる事が多いのです。
 上記の例に限らず、文字化けの調査ではまずメッセージソース(MIMEソース)の収集が最重要で、それが難しい場合はメールのヘッダー情報の採取を次善の策としてお願いするのがまずセオリーです。再現が容易ならテスト環境から再現が出来ない場合はお客様の発生した環境での収集を依頼します。

こういう基本は置いておくとして、メールの文字化けは全くランダムな文字が現れるケースはほとんどなくて、文字が間違って表示されているだけのことが多いので、化け方には傾向があるので見た目だけで何となく何が起こっているか判別することが出来ます。ヘッダーやMIMEソースなどを見ればただちに分かってしまう事なのであまり役に立たない情報かもしれませんが、情報が十分に収集できなかったときや調査の当たりをつける上でもこのような観点は意外と役に立ちますので紹介しましょう。文字化けとかの解説をしているWebサイトなどを見ると似たようなトピックはあると思いますが、もうちょっと適当な話として参考にしてください。

文字化けで最も多いのは文字コード(charset)が正しく指定されていないケースです。
Windowsだとデフォルトの文字コードはShift-JISなので、訳が分からないと文字コードはShift-JISで指定されることが多いので間違った文字コードで表示されるとどのように見えるのかを知っておくのが目的です。

元々の文字はこのようなものであったとします。(秀丸上で表示しているのでちょっとルーラーなどが画面ショットに入っていますがご了承下さい)

オリジナル

これがUTF-8でエンコードされている場合、Shift-JISで表示されるとこのように表示されます。
見慣れない漢字の羅列になって表示されます。こういうのを見たことがある方は多いのではないでしょうか。

UTF-8 が正しく表示されない

以下はJISコードをShift-JISで見た場合です。 (制御文字であるEsc文字がECのような文字で表示されていますがこれはエディター上の表示で通常は見えなかったりつぶれて■のように表示されたりします。)
$B や $( のような文字が入り、全体的に$が多い文字が表示されます。

JISコードの文字

次の例はEUCをShift-JISで見た場合です。不自然なカタカナや句読点のような文字の羅列がたくさん入るのが特徴です。

EUCの文字


次に今までの例とはまた少し違うのですが、海外から送られてきたメールなどで、日本語が書いてあるのに文字コードがヨーロッパ言語(ISO-8859-1)が指定されてしまっているケースなどがあります。
Shift-JISの文字をISO-8859-1 で表示すると以下のようになります。ヨーロッパ言語っぽくアルファベットに記号が付いたような文字がたくさん表示されているのが分かると思います。

中央ヨーロッパ言語(ISO8859-1)

 件名や添付ファイル名はまた化け方に別の傾向があったりしますし、送信側がすでにデータを壊している場合などはこのようなルールにはまったく当てはまらないのですが、文字化けはこの辺が原因であることが非常に多いです。


 化ける文字が毎回違うのだから見てみるまで分からないのでは?て思ってしまうかもしれませんが、意外と傾向があるのが分かると思います。化けた文字なんて見ても・・・なんて思わずに、今度文字化けメールを見たら一度よく見てみてください。


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://hnagasim.blog8.fc2.com/tb.php/398-63e125c7
    この記事へのトラックバック


    最新記事