Pebble日本語化&改造ログ
  全カテゴリ | Blog News | Bugs | Changes | Other Blogware
 
<< Pebbleのローカライズ 1stトライ | Home | Pebble1.9 >>
通知メールのFrom文字化け[FIXED]

これはJavaMailの問題かと思われますが、通知メールの送信者名に漢字が入ると受信したメーラーで文字化けします。通知メールのFromはブログ設定で設定したEMailアドレスで、名前はブログ名となっているためブログ名が漢字だとこの現象が出ます。

Windowsサーバーではこのエンコードが「Shift_JIS」となっており本来JIS(ISO-2022-JP)とすべきです。しかし、Windowsのメーラーの多くはこれをちゃんとデコードするので問題ありませんでした。
今回Linuxで動作させたところ、エンコードが「ISO-8859-1」となり、メーラーでは「??????」となってしまいます。

以前Subjectでエンコーディングを指定したように、
 new InternetAddress(address,personal);
の部分はすべて
 new InternetAddress(address,personal,"ISO-2022-JP");
のように指定する必要があります。
※Pebbleの場合、pebble.util.MailUtils$SendMailThreadのRun()に一箇所だけです。

JAVAでのデフォルトのエンコーディングはシステムプロパティ「file.encoding」で決定し、これはシステムのロケールから割り出します。今回のLinuxでは環境変数LANGが「en_US」となっていたためエンコードが「ISO-8859-1」となったのでしょう。ちなみにLANGが「ja_JP.eucJP」ならどうなるのか予測がつきません。
またWindowsではMS932(JDK1.4.2以降)となるので「Shift_JIS」となったと考えられます。

実は細かくは複雑な問題が残っていて、今Pebble使っているJavaMailをバージョンアップする必要も出てきそうです。
コメント追加

タイトル
名前
E-mail
Webサイト
本文
情報保存 する  しない
  • 情報保存をすると次回からお名前等を入力する手間が省けます。
  • E-mailは公開されません - このエントリーの新規コメント通知が必要なら記入します。

このエントリーのトラックバックURLを表示