携帯メール、PC取込みで文字化け(vmg-eml)
- (2023-06-04 06:07:36)
フリーソフト「VMGtoEML2」
ガラケーメールをPCメールに取り込む作業をやった。
vectorで公開されているフリーソフト「VMGtoEML2」で楽勝と思っていたが、なんとすごい文字化け。
1年前に他人のガラケーメールをVMGtoEML2でemlに変換しメールソフトにインポートしても大丈夫だったが、今回は文字化けではまっている。
作業課程
(1) ユーティリティ「携快電話ZERO」からエクスポート(vmg形式のUTF-8テキストファイル)
(2) VMGtoEML2でeml形式に変換 → emlファイルの中身は文字化け
VMGtoEML2による文字化けを検索すると EmlExtractionListener.java を試せとあった。このプログラムの配布元は「VMGファイルからEMLファイルを抽出する」ページにある。
(3) EmlExtractionListener.javaでeml形式に変換 → 文字化けせず
(4) EmlExtraction生成のemlをメールソフトにインポートで文字化け
「EmlExtractionListener.java」の起動方法
(1) Javeのインストール
(2) DOS窓から「java -jar extractEML.jar」
Javaをインストールし、「EmlExtractionListener.java」を起動し「vmg形式からeml形式」に変換すると文字化けは起こさなかった。
しかし、メールソフト(Becky!)にインポートしたら文字化けとなる。
メールソフトでの変換
メールソフトにインポート後、メールソフトで明示的に「UTF-8」にすると本文の文字化けは解消するが(ただし、なんかの弾みで文字化けにもどることあり)、メールのタイトル部分は文字化けのまま。
ケータイメールの中身
一筋縄でいかないので携帯電話からエクスポートされたメール(vmg)、及びemlの中身を見てみた。
vmgファイルの一例
---------------
BEGIN:VMSG
VERSION:1.1
X-IRMC-TYPE:INET
X-IRMC-BOX:INBOX
X-IRMC-STATUS:READ
BEGIN:VCARD
VERSION:2.1
N:
TEL:
END:VCARD
BEGIN:VENV
BEGIN:VCARD
VERSION:2.1
N:
TEL:
END:VCARD
BEGIN:VENV
BEGIN:VBODY
To: ○○@○.jp
Subject: =?SHIFT_JIS?B?Mi8xNCAgjG+Nz4nbgUCQ7I3o?=
Date: Tue, 14 Feb 2023 09:46:24 +0900
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="KeIkAi_36A04D7C-D6B4-xxxx"
--KeIkAi_36A04D7C-D6B4-xxxx
Content-Type: text/plain; charset=Shift_JIS
Content-Transfer-Encoding: 8bit
経済課 川崎さん
よろしくお伝えください
--KeIkAi_36A04D7C-D6B4-xxxx--
END:VBODY
END:VENV
END:VENV
END:VMSG
---------------
こうやって中身を見るとvmg形式って「BEGIN」とか「END」などのタグがいっぱいついている。意味はよくわからないが、構造自体はシンプルな書式に見えるので変換もそう複雑でないかも。
eml形式に変換したファイルの一例
---------------
To: ○○@○.jp
Subject: =?SHIFT_JIS?B?Mi8xNCAgjG+Nz4nbgUCQ7I3o?=
Date: Tue, 14 Feb 2023 09:46:24 +0900
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="KeIkAi_36A04D7C-D6B4-xxxx"
--KeIkAi_36A04D7C-D6B4-xxxx
Content-Type: text/plain; charset=Shift_JIS
Content-Transfer-Encoding: 8bit
経済課 川崎さん
よろしくお伝えください
--KeIkAi_36A04D7C-D6B4-xxxx--
---------------
emlファイルの「charset=Shift_JIS」がおかしい?
このemlファイルをながめて「Shift_JIS」という部分が気になった。
生成されたファイル自体は「UTF-8」なのになぜ「Shift_JIS」?・・「携快電話ZERO」のエクスポート仕様がそうなっているのか?
とりあえず「Shift_JIS」を「UTF-8」にて全置換してメールソフトにインポートすると本文の文字化けは解消するが、こんどは題名(Subject:)の部分が文字化けとなる。
う~ん、よくわからないが、ならば「Subject: =?SHIFT_JIS?B?」は変更せず、本文の「charset=Shift_JIS」を「charset=「UTF-8」にすると全部うまくいった。
事情がよくわからないが、結果オーライで本日の作業は終了。
最初から最後までShift_JISなら問題ない?
文字コードのことはよくわからないが、今回の問題はこうだと思う。
携快電話ZEROからエクスポートしたvmgファイルの文字コードはUTF-8になっている。
本来ケータイメールはShift_JISだったし、vmgファイル内にも明示的にcharset=Shift_JISと記載されているが、それをUTF-8に変換するからおかしくなるのでは?
VMGtoEML2もShift_JISを前提にしているのではないか?
今回の問題は
(1) 携快電話ZEROからエクスポートされた全ファイルをいったんShift_JIS変換し、
(2) VMGtoEML2にかけ、
(3) メールソフトにインポートする
そうすれば、もしかしたらすんなりいったかもしれない、もうやる気はないが。
・・いや~日本語の文字コードのぐちゃぐちゃは社会全体のムダで国内的な経済ロスになっている。単一コードに統一して欲しい・・とはいえすでに生み出されたデータ資産の巨大さを考えるとデッドロックか・・