Gmailの日本語添付ファイルは「UTF-8」で!

誰かに対して、Gmailを使って日本語の添付ファイルを送るという人に、ちょっと気をつけていただきたいことがあります。それは添付ファイルの文字コード。特に受信する相手のメーラーが、マイクロソフトの「Outlook」シリーズの場合は添付ファイルの「文字化け」に遭遇する確率が高いです。

Gmailで送信した日本語の添付ファイルが一体どのあたりで文字化けを起こすのか、そのブレイクポイントを調べてみました。どうやら日本語全角で400文字から450文字の間ありそうです。(データ量としては、添付ファイルのサイズが800バイトを超えたあたりから文字化けを起こします)

ところで、このGmail送信の添付ファイルの中身が文字化けを起こす条件ですが、冒頭で述べたGmailで日本語の添付ファイルを送信すること、相手の受信メーラーがOutlookであることのほか、Gmailで添付送信するファイルの「文字コード」が関係します。

つまり、これからGmailで相手に送ろうとしている、日本語で書かれたファイルの文字コードを送る前に確認してほしいのです。もし、作られたファイルの文字コードが「Shift-jis」なら、「UTF-8」にしてからGmailで相手に添付ファイル送信すれば、文字化けせずに相手のOutlookできちんと開けます。

ここまで読むと、なかには「あれ?これ悪いのはOutlookじゃないの?」と思う人もいるかもしれません。この現象で厄介なところは、送信側がGmailで受信側がOutlookの場合だけで起こるからです。受信側がほかのメーラーを用意して、問題のGmailからの添付ファイルを受信すれば文字化けなくファイルが開けます。

ですが、この現象を細かく見ていきますと、Gmailから送信された添付ファイルのエンコードにはおかしな点があることに気がつきます。以下にその部分の比較を引用いたします。

▼Gmailから添付送信された800B程度(全角400文字程度)の添付ファイルエンコード
–001a11c00cb2704be004f294abe2
Content-Type: text/plain; charset=Shift_JIS; name=”ANSI_817B.txt”
Content-Disposition: attachment; filename=”ANSI_817B.txt”
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hrre4q742

▼Gmailから添付送信された900B程度(全角450文字程度)の添付ファイルエンコード
–001a11c00cb2704be004f294abe2
Content-Type: text/plain; charset=US-ASCII; name=”ANSI_925B.txt”
Content-Disposition: attachment; filename=”ANSI_925B.txt”
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hrre4q7e3

実はどちらも同じ文字コード(Shift-jis)で作った日本語の添付ファイルです。メールのソースを開いて、メールが送られてきたサーバーの情報を読みますと、全角400文字(800バイト)程度であれば、Gmailから送られてきた添付ファイルの文字コードが正しくそのまま「Shift-jis」と判別されています。この場合は結果通りに問題なくOutlookに届けられ、文字化けなく中身を読むことができました。

それに対して、日本語で作った添付ファイルの中身が全角450文字(900バイト)程度では、添付ファイルの文字コードが送信サーバー側で変えられて送られています。つまり、ある条件を超えると、Gmail側が添付ファイルの文字コードを勝手に変えて送信しているのです。

このことから今回の事象は、Gmailの送信サーバーからの誤った文字コード情報をそのままOutlookが受け、さらにOutlook独自のメール形式のファイルにキッチリ格納した結果の「文字化け」だったことがわかりました。

※ここまでわかった経緯については以下リンクを参照。
http://answers.microsoft.com/ja-jp/office/forum/office_2007-outlook/gmail%e3%81%8b%e3%82%89%e9%80%81%e4%bf%a1%e3%81%95/b464a96a-3996-43e4-adf4-8692432bce56?page=1&tm=1431172789284

なお、この問題については、私からマイクロソフト社のOfficeサポート、Google社には連絡済みです。

※Googleのスレッドの経過は以下の通り。
https://productforums.google.com/forum/#!topic/gmail-ja/R4Qpo9kt6a8

さて、今回のようなGmail送信-Outlook受信で起こる日本語添付ファイルの文字化けの対処方法ですが、メールの受信者が他のメーラーを用意しない限り、現状として有効なのは以下の方法くらいしかないでしょう。

  1. Gmailで日本語添付ファイル送信する場合は、その添付ファイルの文字コードを「UTF-8」にする。
  2. Gmailで日本語添付ファイル送信する場合、ファイルの拡張子を.datにして送ってもらい、そのファイルを受信後、添付ファイルの拡張子を本来のファイル拡張子に戻してそのファイルを閲覧する。
  3. Gmailで日本語添付ファイル送信する場合は、圧縮(zip形式等)フォルダにしてから送信してもらう。

いずれもGmail送信する側でやってもらわなければならない方法です。
Gmail送信者側にある程度のパソコンスキルが求められる方法しかないのが痛いところで、結局はメールの受信者であるこちら側で、こういったメールをいつでも受けられる「備え」をしなくてはならないでしょう。

メーラーの設定で「メールを受信したら自動的にサーバーからメールを削除する」ようなチェックは外し、メールをメーラーで受信した後も「サーバーにメールのコピーを残す」ような設定をしておくことが十数年ぶりに必要になりました。

送信側のGmailユーザーでは当然ながら文書の文字化けを事前に確認することはできません。そもそも自分の端末ではきちんと見えている文書ですから。受信側のOutlookユーザーでしか確認できない事象です。

この問題は、Gmailの添付ファイルに対する自動判定の精度が向上すれば解消されることですが、グーグルのGmailチームが改善の方向に動くかどうかは不明です。ひとまず、社内のエンジニアに問題を認識していただいたことにはホッとしています。

スポンサーリンク
Google AdSense レクタングル
Google AdSense レクタングル

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
Google AdSense レクタングル