Mailで携帯に転送すると文字化けする
Mailで、ある特定の条件を満たすメールを携帯(WillcomのPHS, WX300K)に転送しているのですが、かなりの確率で文字化けして読めません。もちろん、Mail上ではちゃんと読めています。
文字コードが対応していないのだと思いますが、大丈夫なメールもあるので、ちょっと不思議です。
Mailは、転送時、元のメールの文字コードを保存するのでしょうか? また、それを変更して転送することはできないのでしょうあか? よろしくお願いします。
Mailで、ある特定の条件を満たすメールを携帯(WillcomのPHS, WX300K)に転送しているのですが、かなりの確率で文字化けして読めません。もちろん、Mail上ではちゃんと読めています。
文字コードが対応していないのだと思いますが、大丈夫なメールもあるので、ちょっと不思議です。
Mailは、転送時、元のメールの文字コードを保存するのでしょうか? また、それを変更して転送することはできないのでしょうあか? よろしくお願いします。
polon31 さんによる書き込み:
Mailで、ある特定の条件を満たすメールを携帯(WillcomのPHS, WX300K)に転送しているのですが、かなりの確率で文字化けして読めません。もちろん、Mail上ではちゃんと読めています。
最近のパソコンで使用するメーラー(メールソフト)はマック版も Windows 版も色々な文字コードに対応しており、特に最近はほとんどどんな文字を使っても、ほぼ世界中の文字が文字化けすることなく利用できる現在のところ究極の文字コードと言える Unicode (UTF-8) のメールが増えています。(これからは世界中のウェブページも、メールで使用される文字コードもこの Unicode に統一されて行くことでしょう。)Unicode を使ったメールやサイトでは「⌘、、①②③、ⅠⅡⅢⅣⅤⅥⅦⅧ、㈱、♡、髙、Dvořák、Győr、Ceauşescu、Hồ Chí Minh、محمد بن عبد الله بن عبد المطلب、Пётр Ильич Чайковский、태왕사신기、中华人民共和国、ครัว บางกอก」等の文字を文字化けの心配をすることなく混在させることができます。
iPhone 3GS を始め、外国製の携帯電話では Unicode (UTF-8) への対応が常識となっておりますが、国産の携帯は未だに頑なに Unicode (UTF-8) への対応を拒否して、日本語のみの表示しかできない(それも全ての日本語の文字が使えるわけではない)JIS (ISO-2022-JP) のみの使用に固執しています。
もしも、パソコンに届いたメールを携帯に転送した場合に文字化けが発生するのを防ぎたい場合には、現実的な対処方法としては、携帯電話を国産の携帯ではなく iPhone 3GS 等に変更することしかないのではないかと思います。
ネットなどでは国産携帯オンリー・ユーザーの側から「iPhone から届くメールは文字化けするので、iPhone で何とか対応して欲しい」という要望が多く見かけられますが、iPhone は国産携帯の文字コードも含めて、色々な文字コードに対応しているのであり、問題は色々な文字コードに対応していない国産携帯の方にあります。iPhone やパソコンのメール側にできることはなく、国産携帯側の対応を待つしかありません。
文字コードが対応していないのだと思いますが、大丈夫なメールもあるので、ちょっと不思議です。
Apple Mail はデフォルトの文字コード設定は「自動判別」になっています。通常はこれが一番無難です。で、Apple Mail は JIS (ISO-2022-JP) の文字コードのみで記述されているメールは、送信時に手動でテキストエンコーディングを送信者が意図的に変更しない限り、JIS (ISO-2022-JP) のまま送信します。これらのメールは JIS (ISO-2022-JP) にしか対応していない携帯で受信しても文字化けは起こりません。
しかし、送信するメール(polon31 さんの場合は転送するメールですが)に JIS (ISO-2022-JP) に規定されていない文字(しかし、Windows ユーザーなどは外字エリアに登録されているプライベートな[=規格外の]文字コードの文字)が含まれていると、正規の[=純正の]JIS (ISO-2022-JP) では表示しきれない文字が含まれていると判断し、それらの文字も定義されている Unicode (UTF-8) でメールを送信(転送)してくれます。よくあるのが「①②③、ⅠⅡⅢⅣⅤⅥⅦⅧ、㈱」のような文字です。Windows ユーザーの方々にはいくら注意しても、まずこれらの文字の使用を止めることはありません。従って、これらの文字が日本語のメールに含まれていると(恐らくほとんどのメールに含まれています...)、それらは文字化けしないように Apple Mail はメールを Unicode (UTF-8) に変換して送信するのです[←正しい、お利口さんな行動です]。(もしかすると、「¥」や「\」も Unicode にしないと文字化けするかも知れません。)
メールが Unicode で送信されることを防ぐには、送信時に手動で意図的に JIS (ISO-2022-JP) に文字コードを指定してやる必要があります。ただし、その場合は、メールを送信する時に、Unicode でないと表示できない文字などが「�」に置き換えられてから送信されることになり、受信者側でも、その部分は文字化けして「・」で表示されることになります。つまり、Windows ユーザーが「① 国王 Richard Ⅱ が...」と書いたメールを Apple Mail で受信しても、ちゃんと「① 国王 Richard Ⅱ が...」と表示されますが、Apple Mail はここで「①」や「Ⅱ」が JIS (ISO-2022-JP) では使ってはいけない文字コードだと知っているので、転送・回送時には「① 国王 Richard Ⅱ が...」を Unicode (UTF-8) に変更して送信します。そのメールを Unicode に対応したパソコンのメーラー(メールソフト)や iPhone 等で受信すれば問題なく表示されるのですが、携帯メールや多くの Web メールで表示させると文字化けして読めない可能性が出てくるのです。(例えば、Yahoo! Mail をブラウザー上で Web メールとして表示させた場合には何をどうやっても文字化けを解消することはできません。POP3 でメーラーで受信すると Yahoo! Mail でも問題はないのですけれども。)
で、「① 国王 Richard Ⅱ が...」を Apple Mail から再送信・転送・回送する時に意図的に JIS (ISO-2022-JP) に変更してから無理矢理送信すると、送信時に「① 国王 Richard Ⅱ が...」は「� 国王 Richard � が...」として送信されてしまいます。これを携帯で受信した場合には、docomo の携帯の場合は「・ 国王 Richard ・ が...」のようになって受信します。au の場合は、この前まではメールの全文が文字化けして読めなくなってしまっていたのですが、iPhone とのやりとりで問題が多発したために対応を迫られ、docomo 並になったということですが、私は au で実際にどう表示されるかは知りません。
繰り返しますが、根本的な対策は、パソコンや iPhone 等のインターネット・メール側ではなく、日本の国産の携帯(いわゆる“ガラケー”が)が対応しない限り解決しません。
Mailは、転送時、元のメールの文字コードを保存するのでしょうか? また、それを変更して転送することはできないのでしょうあか? よろしくお願いします。
そこら辺は私はきちんと知りませんが、想像するに、問題がなければ、受信した時点のテキストエンコーディングで転送・回送し、受信したメールのヘッダ部分のテキストエンコーディングの定義と、実際の本文で使われている文字コードに矛盾がある場合には、適切なテキストエンコーディングに変更してから送信するのではないでしょうか?
手動で文字コードを再定義してから送信するというのは、パソコンに届いたメールを自動転送するという場合にはできませんよね。また、仮に手動で、本来は Unicode (UTF-8) なのに、JIS (ISO-2022-JP) と定義されて届いたメールを無理矢理 JIS (ISO-2022-JP) として転送すると、先ほどの例のように「① 国王 Richard Ⅱ が...」は「� 国王 Richard � が...」として送信されてしまいます。それを避けるためには「① 国王 Richard Ⅱ が...」を手で「(1) 国王 Richard II が...」(「Ⅱ」の部分は小文字の「I」を2つ並べたもの)のように変更してから送信しなければなりません。
なお、Apple Mail のライブラリに保存されている定義ファイルを自分で書き換えれば、Apple Mail から送信するメールの文字コードを JIS (ISO-2022-JP) に限るように設定することは可能です。ただ、やってみればわかりますが、非常に不便になります。私は逆に Apple Mail から送信するメールのテキストエンコーディングを一時デフォルトで Unicode (UTF-8) に設定していましたが、パソコンでも非常に古い OS(前世紀のもの!)を使っている方が結構多く、彼らは(携帯ユーザーと同じで)どうやっても文字化けを回復できないので、Unicode (UTF-8) をデフォルトにするのは断念し、「自動」に戻しました。
もし、polon31 さんが、どうしてもパソコンに届いたメールを出先の携帯ですぐ受信する必要があるのであれば、携帯を iPhone に変更する以外の現実的な対応策はちょっと思い当たりませんが...。(この問題はマックとか Windows とかの問題ではなく、インターネット・メールと国産携帯の間の問題ですから...。)
--------------------
Apple 17" MacBook Pro (Intel Core 2 Duo T7600/2.33 GHz/3 GB RAM/500 GB HDD)
Mac OS X 10.5.7 (Build 9J61) [Leopard]
--------------------
このメッセージは次により編集されています: しい坊
なお、Unicode に対応しているブラウザで表示させても、Windows でこの書き込みを読んでいる場合には「⌘」(Mac OS X のコマンド記号 Place of interest sign)[U+2318] や「�」(Replacement character) [U+FFFD] 等は表示されないかも知れません。
--------------------
先ほど、Windows Vista で 17" MacBook Pro を起動して確認したところ、Windows Vista 上では「⌘」と「�」は同じように表示されましたが、「」(アップル社の林檎のロゴ)[U+F8FF] はトーフになってしまっていました。U+F8FF は Unicode の「私的領域」(Private user area) に定義された文字ですので、Windows で表示できなくても不思議ではないのですが、これだけ多用される記号ですから、例えライバル会社のロゴではあっても、Windows でも収録していただきたかったですね。
しい坊さま
丁寧な解説ありがとうございます。まぁ、たぶん携帯のせいだとは思っていたのですが、何らかの対策がないものかと思っての投稿でした。
メールタイトルは文字化けしませんし、差出人のメルアドはアルファベットなので、見にくいですが判別可能です。なので、重要且つ緊急なメールの場合は、PCのあるところへ走るという対応をしています(^^;) これを理由に、iPhone 3GSに買い換えようかな? でも、キャリアーがソフトバンクというのがまたネックで、ちょっと地方に行くと、受信そのものが出来なくなるので困ります。
今改めて、Mailのルールを見ていて気づいたのですが、「AppleScriptを実行」というのがありますね。これで、文字コードをJISに変更して転送ってできないのでしょうか? 一部の文字が化けるくらいならまだ我慢できます。詳しい人、お知恵をお貸し下さい。
Mailは、転送時、元のメールの文字コードを保存するのでしょうか?
確認せずに発言しているので的外れだったら申し訳ありません。
「メッセージを転送」ではなく「メッセージをリダイレクト」とした場合もやっぱり文字化けはおきますか?
Mailが記号を含むメールの文字コードをUTF-8に変換してしまうのが問題なので、もしかしたらリダイレクトなら文字コードを変換せずに行ったりしないかな・・・と思ったり。
解決策ではなくて恐縮ですが、WILLCOMの比較的新しい機種である「WX330K」と「WX340K」にMacのMailアプリからテキストエンコーディングにUTF-8を指定して送信したメールが文字化けせずに読むことができることを確認したことがあります。
エンコーディングが適切にされていることは、メールヘッダに「Content-type: text/plain; charset=UTF-8; format=flowed」と記されていたことから間違いないと思います。
もちろん機種によって搭載されているメールアプリが異なるので一概には言えませんが、少なくともUTF-8の受信に対応している機種は存在するようです。
>「メッセージを転送」ではなく「メッセージをリダイレクト」とした場合もやっぱり文字化けはおきますか?
これを行ったとしても、文字化けする場合があります。
元のメッセージにISO 2022-JPの規格外の文字が含まれている場合、Mail.appは文字コードをUTF-8に変更することで文字化けを防ごうとします。
これをメニューで強制的にISO 2022-JPに変更しても、やはり規格外の文字による文字化けを防ぐため、自動的にUTF-8に変更して送信します。
そして、UTF-8非対応のケータイで受信すると、全体が文字化けします。
諸悪の根源は、ISO 2022-JPの規格外の文字を入れたまま、ISO 2022-JPコードを名乗って送信してくるケータイ。
ルール違反の行為であるにも関わらず、ケータイの開発メーカー(とキャリア)が無責任なので、Shift-JISに含まれている文字なら何でも送信します。それどころか、独自拡張(絵文字と丸数字)まで入れて送る始末。
定番ですが、とりあえずターミナルで
defaults write com.apple.mail NSPreferredMailCharset "ISO-2022-JP"
とすれば、ISO-2022-JPで送信可能にはなりますが、どうやらISO-2022JPにない文字が含まれているとUTF-8で送信してしまうようですね。
※すみません、野尻さんとかぶりました。
「メッセージを転送」ではなく「メッセージをリダイレクト」
リダイレクトにして自分から自分に送って実験してみたところ、携帯に転送されてきませんでした。リダイレクトって「回送」みたいなもんだと思っていたのですが、ちょっと違うようですね。
AppleScriptを使っても、やはり同じように文字化けしてしまうのでしょうか?
全体が文字化けするのだけでも防げれば十分なのですが・・・。
M3CSL さんによる書き込み:
定番ですが、とりあえずターミナルで
defaults write com.apple.mail NSPreferredMailCharset "ISO-2022-JP"
とすれば、
どうでもいいことですが、皆さん、やはりターミナルでコマンド入力されるんですね。私の場合は、(その方がはるかに楽なのと直感的にできるので)
~/ライブラリ/Preferences/com.apple.mail.plist
で目的の「com.apple.mail.plist」というファイルを選択して、ダブルクリックして「PlistEdit Pro」で開いて、「NSPreferredMailCharset」という項目の「Value」欄に直接デフォルトにしたい文字コードを書き込んでしまいますが...。(ちなみに Mac OS X の日本語モードのデフォルト値は「ISO-2022-JP」のようです。...と言うことは...。)やはり日常的にプログラミングされている方々はターミナルから直接コマンドを入力する方が楽なんでしょうか...? 私は「PlistEdit Pro」等はかつての「ResEdit」のようで、いかにもマックらしく好感が持てます (^^)。
--------------------
Apple 17" MacBook Pro (Intel Core 2 Duo T7600/2.33 GHz/3 GB RAM/500 GB HDD)
Mac OS X 10.5.7 (Build 9J61) [Leopard]
自分も Pref Setter(だったかな?)というのはインストールしてあります。Classic OS を引きずっている身として最初のころは使ってましたが、最近では1〜2行で済んじゃうものはターミナルを使うようになりました。で、OSXサーバもいじるようになってようやくコマンドにも慣れてきた感じですかね。
Mailが不正なISO-2022-JPで符号化されたメールを転送する際、UTF-8またはCP932で再エンコードすることによる文字化けであれば、メーラーを(たとえば)Thunderbirdに乗り換えれば回避できます。あるいは転送機能のみThunderbirdを利用するとか。
ケータイを買い換えるのと比べて、少なくともカネはかかりません。Thunderbirdの動作が「正しい」かどうかは、別の話ですけれど。
試してみたのですが、Thunderbirdでは、自動転送設定だと必ず元のメール内容が「添付」として送られてしまいます。
私の携帯では、その添付文書(拡張しeml)が開けないため、見ることができませんでした。
polon31 さんによる書き込み:
試してみたのですが、Thunderbirdでは、自動転送設定だと必ず元のメール内容が「添付」として送られてしまいます。
私の携帯では、その添付文書(拡張しeml)が開けないため、見ることができませんでした。
拡張子「.eml」(“e-mail”の略か (^◇^;)?)のファイルは中身はただのテキストファイルですから、無理矢理開くことはできませんか? あるいは、保存した添付ファイルの拡張子を「.eml」から「.txt」に書き換えることができれば、普通に開くことができるはずです。
ただ、毎回いちいちそんなことをやるのは面倒くさいですよね...(^◇^;)。
--------------------
Apple 17" MacBook Pro (Intel Core 2 Duo T7600/2.33 GHz/3 GB RAM/500 GB HDD)
Mac OS X 10.5.7 (Build 9J61) [Leopard]
polon31 さんによる書き込み:
しい坊さま
これを理由に、iPhone 3GSに買い換えようかな? でも、キャリアーがソフトバンクというのがまたネックで、ちょっと地方に行くと、受信そのものが出来なくなるので困ります。
私は現在、FOMA F904i@docomo と iPhone 3GS@SoftBank の2台持ちなので、docomo は電波が届いているのに、SoftBank は届かないということは頻繁にあります。ただ、docomo だって、どこでも強いわけではなく、例えば妻が友人たちと軽井沢に行った時には、友人たちの au は大丈夫だったのに、妻の docomo の FOMA は全く電波が届かなくなっていて困ったそうです。地元の店の人に話したら、軽井沢では docomo は電波は届かないということでした。軽井沢のような所でのことだったので意外でした。(誤解されると困るのですが、当然軽井沢でも docomo が使える所はあるはずです。単に妻が行った地区で繋がり難いだけだったのだと思います。)
SoftBank に関しては、これまで1年ちょっと使った感じでは、docomo よりも SoftBank の方が電波の掴みが良かった場所というのは経験したことはありません。しかし、時々 docomo 以上に繋がらないので困ることはありますが、それほど使えないわけではないということも経験しています。当初は、通話は docomo の方のみでと考えていたのですが、「連絡先/コンタクト/アドレスブック」の使いやすさ、表示の分かりやすさ、「連絡先」の検索のやりやすさ、留守電の再生の便利さ、同期のやりやすさ等から、今では iPhone 3GS を使った通話の方が多くなっていますね (^◇^;)。
まぁ、iPhone 3GS に乗り換えるというのが1つの根本解決法であるのは確かでしょうが、もう1つ、WX300K@Willcom をお使いのようですから、SoftBank が心配であるのであれば、docomo に乗り換えてしまうという選択肢もありますよね。docomo ならば、確実に文字化けの部分は文字単位で「中黒」(・)に置き換わるだけですから。
(※ 念のために申し添えておきますが、iPhone 3GS に機種変更すれば、文字化けの問題か完全に解決するわけではありません。Mac OS X の Apple Mail はメールのヘッダ情報を優先させるようなので、メールに間違ったテキストエンコーディング情報が埋め込まれていると、手動でテキストエンコーディングを変更しようとしても無視され、文字化けを解消できないという問題があります。私はメインのメールアカウントは Apple Mail 以外にも、Thunderbird と Eudora で平行受信していますので、こういう場合には Thunderbird の方で開いて、テキストエンコーディングを変更して読めるようにしています。返信する場合には、Thunderbird 上で文字化けを解消したメールを、Apple Mail で「返信」を選んだ引用部分が文字化けしている返信メールにコピペしてから Apple Mail から返信するのですが...(^◇^;)。iPhone 3GS の Mobile Mail の場合は(Apple Mail の弟分ですね)、元々手動でテキストエンコーディングを指定できないので、Mobile Mail で受信したメールも場合によっては文字化けしたままのものもあります。特にメールが最後まで読み込まれていない場合は文字化けしていることが多く、その場合は「残りを読み込む」ボタンを押すと文字化けが解消されることがほとんどです。)
--------------------
Apple 17" MacBook Pro (Intel Core 2 Duo T7600/2.33 GHz/3 GB RAM/500 GB HDD)
Mac OS X 10.5.7 (Build 9J61) [Leopard]
試してみたのですが、Thunderbirdでは、自動転送設定だと必ず元のメール内容が「添付」として送られてしまいます。
私の携帯では、その添付文書(拡張しeml)が開けないため、見ることができませんでした。
Thunderbirdの「環境設定>編集>一般>メッセージを転送するとき元のメッセージを:メール本文に含める」で、どうでしょう。
と書いて、ポストする前に念のためにテストしてみたら、上記の設定でも自動転送した場合はmultipartになっちゃうんですね(手動転送なら、そんなことはないのですが)。multipartでもプレーンテキストは付いていますので、ケータイの機種によっては読めるかもしれませんが、ダメならお役に立てずにすみません。
NAOI さんによる書き込み:
Thunderbirdの「環境設定>編集>一般>メッセージを転送するとき元のメッセージを:メール本文に含める」で、どうでしょう。
と書いて、ポストする前に念のためにテストしてみたら、上記の設定でも自動転送した場合はmultipartになっちゃうんですね(手動転送なら、そんなことはないのですが)。
Microsoft Entourage を使ったらどうなんでしょうね?
以前はマック用のメーラーは色々あったんですが、最近は壊滅状態ですよねぇ...。
--------------------
Apple 17" MacBook Pro (Intel Core 2 Duo T7600/2.33 GHz/3 GB RAM/500 GB HDD)
Mac OS X 10.5.7 (Build 9J61) [Leopard]
Mailで携帯に転送すると文字化けする