余計なおせっかい(勝手な文字コード変換)

Mail を愛用していますが,そのMailから発したメールが「文字化けしている」と出した相手から叱られることがしばしばあります。原因は,Mail が余計なおせっかいです。おせっかいをするなら,Mail でないメールソフトを使っている人にも通用する「まっとうな」ものにしてください!
例1
誰かが「JIS漢字」にない外字を使ったメールを私にくれ,それに返事を出したとします。すると,Mail は,「JIS漢字」でない文字だから,というので,Unicode での該当する文字に置き換え UTF8 でエンコードして送り出します。(こまったことに,受け取り手が使っているメールソフトが UTF8 に対応していないことが多く,相手のとっては「文字化け」がおきます。)
例2
8859の文字を使っている英文テキストと,日本語のテキストが混在したメールを送ると,なぜだか charset を 「GB2312」だと定めて quoted-printable にエンコードしてしまいます。この扱いは「Mailの常識,世界の非常識」ですから,受け取った人から「文字化けして読めない」とお叱りを受けることになります。試しに皆さんもつぎの1文をメール本体に書いて誰か Mail でないメールソフトを使っている人におくってごらんになれば,その「非常識」を味わうことができます。
こんな数式 x ≦ y があるだけで文字化けします。

投稿日 2005/03/29 02:17

返信: 6

2005/03/29 02:28 Community User への返信

「非常識」の例を示しましたが,実は例になっていません。理由は,この掲示板の仕組みが「勝手に文字を置き換えてしまう」からです。
denoted x ≦ y, is true if x = y
での不等号(8859での<のしたに-が付いた形の文字)を
「安全な」JIS符号での≦(全角)に置き換えてしまうからです。

2005/03/29 02:30 Community User への返信

Mail も,この掲示板と同じ形の「おせっかい」の仕方をとってくれれば問題が起きないのですが。。。

2005/03/29 09:15 Community User への返信

>おせっかいをするなら,Mail でないメールソフトを使っている人にも通用する「まっとうな」ものにしてください!
どうぞ、Tell Us してください。
または、こちらにフィードバックして下さい。
ここに書いてもどうにもなりませんから、、、

2005/03/30 12:55 Community User への返信

>誰かが「JIS漢字」にない外字を使ったメールを私にくれ,それに返事を出したとします。
>すると,Mail は,「JIS漢字」でない文字だから,というので,Unicode での該当する文字に置き換え UTF8 でエンコードして送り出します。
この場合、元のメール自体がおかしい (ISO-2022-JP の規約違反) ことになりませんか? もし、Mai.app が UTF-8 ではなく ISO-2022-JP でエンコードしたとしたら、それは不正な文字コードになってしまいます。不正な文字部分をゲタ (〓) に置き換えるなどの処理が必要になると思います。
逆にいうと、あなたが、不正だと思われる文字をゲタに置き換えれば ISO-2022-JP で送出されると思います。
>8859の文字を使っている英文テキストと,日本語のテキストが混在したメールを送ると,
>なぜだか charset を 「GB2312」だと定めて quoted-printable にエンコードしてしまいます。
これも変テコな処理だとは思いますが、では、どういう文字コードで送出するのが正解だと思いますか?
複数の文字コードを使うようなメッセージを送ること自体が不正だと思われるので、Mail.app が自分の期待しない動作をするのも仕方ないでしょう。
Mail.app の苦情を言うのもいいですが、正しいと思われる実装を Apple にぜひ提案してみてください。
# わたしは、前者の場合は、UTF-8 にするかゲタ変換で ISO-2022-JP で送るかを選択できるオプションが必要だと思うし、
# 後者は UTF-8 にするか、マルチパートにして文字コードごとに分割するかしかないと思います。

2005/03/30 14:16 Community User への返信

targz さんに賛成。
例1は、ISO-2022-JP で処理できない文字が含まれているため、まっとうな処理だと思いますし、例2もそこで中国語になるのはおかしいですが、ISO-2022-JP で処理できないから、他の可能なエンコード方法になるのはまっとうではないでしょうか。まぁ、例2の場合なら、UTF-8 を使うのが普通でしょうね。
メッセージ>エンコーディング から、文中で使用している文字セットをエンコード可能な好みのエンコーディングを選んで送ればよいと思います。

2005/04/06 09:59 Community User への返信

>メッセージ>エンコーディング から、文中で使用している文字セットをエンコー>ド可能な好みのエンコーディングを選んで送ればよいと思います。

このデフォルトのエンコーディングを固定できればいいんですけどね。
探したけどどこにも設定が見当たりません。
「デフォルト」だと断りなく勝手に解釈してエンコーディングを変えて送信しちゃうんですよね。これってむしろ「自動判定」じゃないのかなーと思ったりします。
たとえばエンコーディングをISO-2022-JPに指定すると、不正なメールを送信しようとしたときアラームが出ます。あとはデフォルトが固定できれば実用に耐えると思うのですが。技術的に難しくもないのでは。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

余計なおせっかい(勝手な文字コード変換)

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。