【画像をクリックすると拡大します】
昨年の11月にPCをWindows7にアップグレードしたことに伴い、メールソフトも Outlook2010を使用することになったのだが、それ以降
時々受信メールが文字化けすることに気が付いた。 (下の画像)
不思議なことにプレビューで化けないのと、英数字はOKなので漢字その他を区別して表示する「ダブルバイト処理」に問題があると考え、その
内マイクロソフトからのアップデートで解決するだろうと放置していた。
然しながら、最近はiPhone, Exchange Server, その他特定の発信元からのメールで文字化けが発生し放置できなくなって来た。
解決方法は複数あるが、どうも私の使用環境にマッチしない。
解決方法1;Office2010環境下で新しくメールホルダを作成して今後の新しいメールは新しいホルダで使う
==>Outlook2003から移行したメールホルダと分割されてしまうので使いづらい (却下)
解決方法2
; Internet Explorer のセキュリティ更新プログラム (KB2467659) をインストールする。
==>残念ながら「この更新プログラムはお使いのコンピュータには使えません」 が出力され使用できない。(却下)
仕方がないので、受信メールのエンコードを下写真の様に変更してみたが相変わらず駄目!
あれこれエンコードをいじくっている内に、突然正しい画面が表示された。・・・さて、自分でどうやったのか分からない???
再度、別の化け文字メールを使って Try & Error 作業を繰り返す。 ===>見つけた!!
手順はこうだ。
@ 化けているメールを開き「メッセージ」タブをクリック。
A 移動ボックスの「アクション」アイコンをクリック
B 「その他のアクション」をクリック
C 「エンコード」をクリックすると 日本語(自動選択),UTF-8, UTF-7,その他(M)等々のエンコードパターンが表示される。
D 1回目; 西ヨーロッパ(Windows) を選択する。
E 2回目; 上記@からCをの操作をもう一度行い、エンコードを[UTF-8]に設定する ==>正しく表示されます。
F このメールを正しく上書きし保存する為に、 ファイルー上書き保存 を行なう。
これで、化けたメールは上書きされるので次回からは正しく読むことが出来ますが全く論理的で無いので困ります。
本来は、受信したダブルバイト制御キャラクター判別の不備をマイクロソフトに修正してもらわないといけないのですが、取り敢えずはOKの様です。
後で、インシデントを上げることにします。 しかし、上記の「解決方法1」でやりなさいと回答されたら困ってしまいます。
【2013.09.04追記】
マイクロソフトのサポートデスクに電話をしました。
状況を説明したところ、やはり上記の[解決方法1]の通り、Outlook2010で新たにメールホルダを作成して、Outlook2003で作成したホルダ
をインポートしなければならないとのことでした。 理由はOutlook2010で新規に設定した機能(仕様)が旧バージョンで作成されたホルダの仕様と
合致しないので、まれなケースで文字化けが起きてしまうそうです。 この回答は現に発生している問題に対する具体的な説明でないので理解出来
ないものであったが、仕方がないと諦めてアドバイスに従うことにしました。 尚、インポート処理では旧バージョンで作成したサブホルダも、そのままイン
ポートしてくれるそうです。
しかし・・・同じラインアップの製品なのに変ですね。 もし旧メールホルダはインポートしなければ、新バージョンで使えないのであれば、新バージョンの
インストールの際に、「メールホルダの指定」では無くて「インポート」だけを選択肢にすべきと思うのだが・・・。
自分のPCはOutlook2013もインストールしているので、今後はこれを使うことにして、操作はリモートデスクトップを使って全てマイクロソフトのサポート
デスクの方に行なって戴きました。 結果、インポート自体は正常に出来ましたが、Outlook2013でメールの送信が出来なくなってしまいました。 Orz!
何でやねん! と思っていたら、流石に毎日この様なサポートをしているマイクロソフト サポートデスク! ウィルス対策ソフトのスパムメールオプション
をOFFにして「やっぱりねー。 これでうまく行きました」とのコメント。 「おいおい、それじゃ困るんだけど」と私。「この問題はウィルスソフト会社のサポートデスク
にエスカレーションして下さい」 とマイクロソフト。 「それでは間に挟まれた私はどうなるの?」と言っても「スミマセン。この問題は私共にはどうにもなりません」
とマイクロソフト。 だってOutlook2010で旧ホルダを使っている時はスパムメールオプションをオンにしてもメール送信は大丈夫だったのに。
これ以上言っても、担当者レベル相手では何ともならない。 諦めてウィルス対策ソフトベンダーのホームページを調べてみると、最新バージョン(Ver.6)では
この問題は既知の障害として解決策がリリースされている。 しかし自分のバージョン(Ver.5)では対応していないし、既知であっても新規の修正はしてくれま
せん。「Outlook2013を使うのであれば、バージョン6を購入しなさい。」と言うことなんですね。 もう少し明示的に表示してくれれば良いのに・・・・。
やっぱりマイクロソフトのヘルプデスクに電話しないでそのまま使っていれば良かった。 無駄な時間を使ってしまった。
悲しいかなこれがマルチベンダー環境でIT機器を使う世界の事実なのです。 責任範囲がハッキリしすぎて全体的な一貫性が喪失してしまう典型例です。
特定ベンダーの中の真理は他社の真理ではないので、障害が発生しても話が噛み合わないことは沢山あります。
会社業務の場合は信頼できるSI’er(システム・インテグレーター:サポート会社)と契約してお世話になる体制を整えておかないと、とても怖いお話です。
【参考】ダブルバイトとは?
コンピュータで通常使用されているアドレス毎の情報量は1バイト(8bit)と決められています。 即ち、1番地あたり1バイト(8bit)の情報が格納されています。
それでは1バイト(8bit)でどれだけの情報が入るのでしょうか? 8bitをコンピュータの理解出来る2進法で表現すると;
Bit位置) 8 7 6 5 4 3 2 1
ウエイト) 128 64 32 16 8 4 2 1 =>全部足すと255; 即ち1バイトで 0から255の値が表現できる。
2進法表現例 0 1 1 0 1 1 0 1 =>これを10進法に直すと 64+32+8+4+1=109 となります。
ところで英数字と常用される記号だけを表現するのであれば 大文字26種、小文字26種、 数字10種と記号なので256種類の表現が出来れば充分です。
昔のテレタイプ(英語の電信)は128種もあれば十分であったので1バイトを7bitとして扱い、残りの1bitは通信エラーの検出のために使われていました(Even Parity)
しかし、コンピュータが世界中で使われる様になった現在は,日本語を初めとして中国語等の漢字、ハングル文字、アラビア文字 等々のマルチナショナル言語対応の
要求が出て来ました。 これらの言語も日本語と同様に文字数が沢山あるので8ビット(256種)では無く、2倍の2バイト(16bit:65536種)を使う必要があります。
(ビット数が2倍の16ビットが使えれば表現できる値は倍ではなくて、1バイトで表現できる値である256の更に256倍となり、65536種の文字が使えることになります)
基本的にはこれで沢山ある各国のユニークな文字表現も言語の指定さえ行なえば可能となりました。 別の表現をすれば各言語毎に最大65536種の文字が使用
可能となるので、データの始めの部分にどの言語であるかを宣言をする必要があります。
そこで、コンピュータのデータ交換の世界では特別な識別コードをデーターの頭につけてJIS規格とかアラビア語とかUTF-8とかUS-ASCII等々の区別(宣言)をしています。
これがエンコード/デコードと呼ばれる識別方式です。 エンコードはここで言う1バイトまたは2バイトの『コンピュータデータ』を『文字データ』に変換すること、デコードはその逆
の操作を示します。
(注:エンコード/デコードは暗号及び電子回路の機能を示す用語としても広く使われています。 但し、暗号化の場合はエンクリプション/デクリプションの方が正確です).
一般的にエンコードの種類は先のエンコードの選択操作で参照できますが、私にも分らないくらいの種類があるし、規格も随時変更されています。
そんな訳で、メールソフトが正しいエンコード処理を行なうのは実に大変です。 誰か分からない相手が送信したメールのエンコードが、ある日変更されていたら受信の時に
間違った表示をしてしまいます。(文字化け) この様な事態を防止するためにこのエンコードは世界的に管理されている筈ですが、やはり漏れも多いようです。
【2バイト文字について】
http://www.sophia-it.com/content/2%E3%83%90%E3%82%A4%E3%83%88%E6%96%87%E5%AD%97