ページ内ジャンプ:

アレゲなニュースと雑談サイト

hayakawaによる 2009年01月18日 17時35分の掲載

sarinaga 曰く、

先日、テキストエディタでメールの本文を書いてから、それをメーラーに貼り付けて送信したら、相手先から「一部の文字が?になっているよ」と返信が帰ってきました。原因はテキストエディタで書いた文字の一部がISO-2022-JPに変換されなかったためでした。

e-mailで使われる文字エンコードは歴史的経緯からISO-2022-JPであることは有名な話です。しかし、ESMTPが登場したのは1994年7月という昔の話。今のメーラーならメールヘッダのContent-Typeは正しく理解できるだろうし、Unicodeの対応も行われているのではないでしょうか。そう思って、メーリングリストに送信する時、文字エンコードをUTF-8で送ったところ、誰もが皆正しく受信できていました。しかし、現実問題として、私のところに送られてくるメールのすべてはISO-2022-JPです。メールにおける文字コード問題は昔はだいぶ議論されたものですが(Shift_JISで送るな!とか)、最近は全く聞かれなくなりました。

今もう一度、文字コードの話をしてみてはどうでしょうか。

表示オプション しきい値:
  • ginga (20279) : 2009年01月18日 23時31分 (#1493740)
    問題をよく考えましょう.
    • 単独で動作するアプリケーションの話ではなく,不特定多数の相手との通信アプリケーション
    • 直接に相手の(文字コードなどの)能力仕様を確認する手順を踏まずに, 仮定(相手が ISO-2022-JP 等を処理できると決めうち)の上でいきなり送りつける (SMTPによる MTA 間のやり取りはEHLO 等で仕様確認して調整する余地があるが, MUA間のやり取りは RFC822,RFC2822,RFC5322 などの仕様で書かれたものを,完全一方通行で送る)
    • (とりあえず 8bit through かどうかはまた別の問題ということで置いておく)

    さてここで,歴史的に考えるとこんな感じになります.

    1. 原始時代: 英語? ローマ字?(私はよく知らない)
    2. pre-MIME時代: メッセージには JIS(≒ISO-2022-JP)を使うという プロトコル外の「共通の了解事項」を設定することにより 「日本語メール」が決められて日本語で送受信が可能に
    3. MIMEの登場: 送る側については,前記の「暗黙の了解」に頼らずに 文字コードを指定する方法が登場.ただし符号化方式と文字セットのごった煮問題とか, 受信側との「文字コード対応能力判定」みたいな機能はないことに注意. (また,従来方法も現在に至るまで若干併存)

    日本語限定でなくいろいろな言語・文字コードが飛び交うようになり 「ISO-2022-JP のみ」が若干時代遅れという印象を持つ人もいるかも知れませんが, 実は「文字コードを何にしないといけないか」はほとんど変わっていないはずです.

    多国語を扱いたいとかの要望も含めてutf-8 等の需要は高まっているかも知れませんが, 実はいまでもかなり多くのシステムが MIME の文字コードにすらきちんと従っていません.

    "charset=iso-2022-jp" と宣言しておきながら,実際には本文を shift_jis で送ってくる MUA

    のなんと多いことか. (これはある意味 「ISO-2022-JP 対応で十分」とは言えない理由ともいえるかもしれませんが) 結局のところ,多くのシステムは MIME 情報も参考にしつつ, 「ISO-2022-JP 決めうち(時々変態からの shift_jis や utf-8 に例外的に対応)」 などということを,今でもしているのではないでしょうか.

    MIME 対応すら正しい実装が完全に普及したとは言えないときに, 特殊な文字セットを使いたいとかの場合以外は,「勝手に」変える理由は何もありません. むしろ実装の種類が星の数ほど増え,ユーザーも極めて多種多様になった現在, 旧来の仕様を廃止して全員が納得する「新しい合意」を作るのは以前より遥かに難しいでしょう. 「utf-8 を使いたい」という人がいても良いですが,それは 「相互に utf-8 を使うということに合意がとれている2者間」ないし 「同様の合意のある特定のコミュニティ内」に 閉じて使われるべき話であろうと考えます.

  • Mozilla系のMUAはRFCに近い実装ですが Outlook Expressは
    最初に検出したエンコードで全体をデコードするため
    subjectのエンコードと異なるcontent-typeでは問題がでるなど、
    MIMEの扱いはぼろぼろです。

    さらにIMAPでは検索などでサーバ側でもMIMEを扱うためこちらの対応状況も問題になります。

    メーリングリストでも、アーカイブ作成時の変換やSubjectの書換などで
    エンコード/デコードが必要となります。

    これらについて、現状ではiso-2022-jpであることや、
    メール全体が同じエンコーディングであることを仮定したハックによる
    対応が行われているものが散在し、Content-Typeに従った対応が
    全般に渡ってされていると仮定するのは無理があります。

  • 「送るときは保守的に、受けるときはリベラルに」ということで、私は基本的に iso-2022-jp、text/plain で送っています。でも、もうそろそろ utf-8 でも良い気はしますが。

    --
    HIRATA Yasuyuki
  • Anonymous Coward : 2009年01月18日 18時47分 (#1493571)
    受信者が処理できる可能性を高くするために、最小の適切な文字コードを選択するべきだと思います。
    MIME には最小の適切な文字コードを charset に指定するという規則があるそう [mew.org]だし、ケータイではまだ UTF-8 に対応していないものも少なくないという現実もあるので。
    日本語だと、US-ASCII/7bit → ISO-2022-JP/7bit → UTF-8/Base64 の順で良いのではないでしょうか。
  • tsuya (14020) : 2009年01月18日 21時43分 (#1493685) 日記

    ISO-2022-JPで満足すべきか否かが問題になるのは、ISO-2022-JPで書けない文字が存在するから、に他ならないのですが、何故かその点の議論が少ないですね。ISO-2022-JPで困っている実感がないなら、他の文字コードを使用可能にせよ、という主張は確かに迷惑でしかないでしょうね。

    日本でも、少数ながらISO-2022-JPで表現できない人名や地名が存在し、その多くはUnicodeで表記できます。自分自身がその条件にあてはまる人は(この方 [slashdot.jp]のように?)、そうでない人よりもメール環境のUnicode対応を強く主張できるのでしょうが、あいにく私はそのような境遇にはありません。

    しかし、そういう人を名簿に載せなければならない人などの事情なども汲むと、Unicodeの需要者はもう少し増えるので、そのような利便を考えるとe-mailも対応すべき、ということで、トピックに対する私の答えは是、ということになります。

    ただし、将来すべてのMTA、MUAが対応したとしても、Unicodeが広く使われるようになる可能性はあまり高くないでしょう。たとえば、"...charset=UTF-8" とヘッダに書きさえすればUTF-8が使えるWebでさえ、「■は王へんに宛」などと、Unicode文字を使ってもらえずに本名もまともに書いてもらえない人が、特に中国系や韓国系の人にたくさんいます(ペ・ヨンジュンみたいにカタカナで統一すれば失礼な書き方をしなくてもいいのに、と思うがこれは余談)。これが、使っているWeb制作システムが未対応だからなのか、個人使用のエディタの問題か、メールで記事を投稿するシステムでMUAがISO-2022-JPしか使えないのか、あるいはIMEでの入力の仕方を知らないのか、Unicode非対応のごくわずかなブラウザに配慮しているのか、理由はよくわかりませんが。

    ですから、対応する甲斐があまりない、とも言えるかもしれません。最適な利便という観点で考えると、ISO-2022-JP非対応文字を使う必要のある人よりも、Unicode非対応なMTAやMUAを使っている情報弱者の方が多いと思われますので、現状が一番よい落としどころなのかもしれません。またUnicodeで表記できない人名も恐らくは存在しているので、Unicodeが完全なソリューションというわけでもないでしょう。

  • 受け取れない奴が悪い (スコア:2, すばらしい洞察)

    Anonymous Coward : 2009年01月18日 18時34分 (#1493563)
    今時、複数の漢字コードを受け取れないようなメーラーを使う人は少数派、
    どうしても読みたいなら適切なクライアントを用意するはず。
    大体、すべてiso-2022-jpで来ることを期待するなんて設計や思想そのものが間違っている。
    「送る場合は厳密に、受け取る場合は寛容に」なんて送受信を行う上での基本でしょ。

    というのは暴論でしょうか。
  • Anonymous Coward : 2009年01月18日 19時10分 (#1493586)

    最近かかわったJavaの仕事で、他人が作ったところでメールの文字化けやらで問題が多発していました。
    で、いろいろ自分もお手伝いとして調査していたんですが・・・

    文字コードに平気で Shift-JIS とか Windows-31J とか指定してましたorz

    メールについて何も知らないような、かつ調べようともしないような素人に作らせるなよ・・・。
    という話はともかく、実際問題として、(Windows-31Jは論外としても)Shift-JISでも化けるようなメーラーやWebメールは残ってるので、受信者側のことを考えると迂闊には切り替えられないと思いますよ。

    あと、中国とのオフシェア開発で、日本語メールだと微妙に化ける人がいたときに、UTF-8でメールしてたことがあります。
    が、これも、日本人の関係者から、~さんからのメールがいつも化けます。ちゃんとした設定で送ってください。とクレームがきたので、そんなメーラー使うなよと思いつつ諦めました。
    そういうトラブルを考えると、まだまだ ISO-2022-JP を使わざる得ないかなと。

  • 理由はいくつもあるが、一番大きいのは spam mail 対策。
    複数の文字コードを混在させたメールで spam mail を送ってこられると、本文を使った spam mail 判定が恐ろしく難しくなる。

    何もわざわざ spam mail 屋さんに優しい環境にしなくてもいいよな、と言うわけで、現行のままでいいと思う。
    もっとも、会社の中とかは Outlook + Exchange Server なのでリッチテキストが飛び交っていますが。

    --
    fjの教祖様
  • MS-Wordで送ればいいやん (スコア:2, すばらしい洞察)

    Anonymous Coward : 2009年01月18日 20時21分 (#1493636)

    サブジェクトは暴論でない。ただし、タレコミレベルの話をする場合において。
    タレコミに書いている内容は、一見文字コードの話をしているように見えるが、実際の内容は「読める人がいるから使ってよいのでは?」ですよね。
    それならばMS-Wordで良い。図だって使えるし。(実際はPDFあたりが最適と思う)

    たとえば「メールにおける文字コード問題は昔はだいぶ議論されたものですが(Shift_JISで送るな!とか)、最近は全く聞かれなくなりました。」を理由に持ってくることは間違です。
    いま問題が無いのは、きっちりとコードなどの各種規格を整備した結果であって、ほかの文字コードの無秩序な使用が可能になった結果ではない。

    間違えてほしくないけど、私はメールの表現が豊かになることには反対しないよ。
    ただ、タレコミに書かれているような姿勢でそれを論じるのは明らかに違っているということと、タレコミレベルなら「MS-Wordで送ればいいやん」が回答になると主張するのです。

    あと、日本にはまたとな文字コードとそれを作れる人や組織が無いといってよいほど弱小なのも問題だよね。
    #自戒でもあるが、どの年の規格化とかエンコードはどうで他国の文字との同居はどうすればよいかをちゃんと理解している人は数えられるほどだろうなぁ。自国の言葉なのに...

    • 2個のコメント が現在のしきい値以下です。
  • 日本語以外 (スコア:2, 興味深い)

    uguisu (9285) : 2009年01月18日 23時14分 (#1493732) ホームページ 日記
    日本語以外の話がまったく出ていないので新たに立てます。

    自分は、毎回エンコードを設定するようにしています。日本語+英語+ロシア語とかのメールを書きたい時があるので。正直うっとおしいので、UTF-8がデフォになってくれたら助かります。

    ウェブページも、エンコード指定していないと、OSの言語設定が日本語以外だといちいちエンコードを指定しないといけないので、ウェブの場合はなんでもいいからエンコードを指定して欲しい。
  • 雑談サイトで話の腰を折るというご法度を承知で書くと、
    ・現状で問題ないものに手をつける必要はない(無駄なリファクタリングみたいな)
    ・誰も儲からないことは誰もやらない
    ・小難しいことを言っても一般ユーザには何のことやら
    という感じで、こんな是非は正直「非だ非!」という視線で見てしまいます。
    Unicodeとかげんなりです。字体の変なまとまり方とか、全角ハイフンとか。

    現状でユーザの満足度が上がりそうな変更は携帯で使っている絵文字が
    正しく表示されるとか、そんなもんではないでしょうか。

    # JustsystemあたりがShurikenとATOKを携帯絵文字対応にしたら
    # 初心者ユーザとかうっかり取り込めるかも知れんなぁ、とか妄想してみる。
    # データがかけちゃったところを補完するの込みで(^^;
  • 確かに私の周囲の環境でも8bit transparentでない
    MTAって見掛けません。あとはクライアント側が
    うまく解釈してくれるかどうかだけかな。

    携帯電話への転送に際しては文字コードを
    しないとだめでしょうけど。

    --
    ペーストビン [windy.cx]
  • MLの過去ログを閲覧するWebインタフェースがある場合、
    前提にしていない文字コードが含まれたメールを表示するときに
    トラブルになりがちですね。

    まあそれも対応しろの一言で済ますんでしょうけど。言い出すときりが無いわけで。
  • gonta (11642) : 2009年01月18日 17時55分 (#1493530) 日記

    知人がmh使っています。
    #最近のmhは非iso-2022-jpでも動作するんかな?

    コンピュータに詳しい人とかいう人が、(株)とか丸数字とかをシグネチャに入れるやつがいて困る。

    --
    -- gonta --
    "May Macintosh be with you"
  • Gmailの場合 (スコア:1, 興味深い)

    Anonymous Coward : 2009年01月18日 17時56分 (#1493531)
    もうメールクライアントを使わなくなって久しいのですが、Gmailでは設定でそれっぽい項目があります。
    自分は"送信メールにデフォルトのテキスト エンコードを使用する"にチェックしてます。たしかこれでISO-2022-JPに変換されてた。
    一方、"送信メールに Unicode (UTF-8) エンコードを使用する"という選択肢もありますが、ヘルプ [google.com]では、受信者側で適切に表示できない場合に使えるよとありますね。
    受け取る側としてはウェブブラウザなのでどっちでもいいよって感じですが、たまに欧米のウェブメールを使うとISO-2022-JPでは文字化けすることがあります。文字コードに疎い欧米のソフトを使うならUTF-8のほうが良いのかも。
  • Anonymous Coward : 2009年01月18日 18時09分 (#1493538)
    「せっかく統一されている物を積極的に乱す理由もないかな?」
    という事でISO-2022-JPを使っていますね。

    特に最先端をいかなきゃならない理由もないですし、皆の後を
    ついていけばいいのかな、と。

    こうやって文章に書くと、「ああ、なんて後ろ向きなんだろう」
    とは思いますけど。

    # 文字コードよりも、Outlookの添付ファイルの分割送信の方を
    # 先になんとかしてほしい。
  • USH (8040) : 2009年01月18日 18時10分 (#1493540) 日記

    最近のメーラは頑張ってくれるので、漢字コード自身はそれほど気になりませんが、
    機種依存文字だけは何とかして欲しい。

    送られてくるデータがメーラで閉じていればいいのですが、
    他のアプリに渡すためにファイル保存した際、機種依存コードが化けてしまう。
    特に「丸1」とかローマ数字とか、使われている文章ではかなりの数、出現してしまう。
    これを手で修正するのは面倒だし、、、、

  • 使っているメールソフトがUnicodeに対応していないのでISO-2022-JPでお願いしたいところですが、
    Unicodeに対応していて、軽くて使いやすいメールソフトがあれば乗り換えても良いと思っています。

    皆さんはどのメールソフトをお使いでしょうか?

  • 先日、テキストエディタでメールの本文を書いてから、それをメーラーに貼り付けて送信したら、相手先から「一部の文字が?になっているよ」と返信が帰ってきました。原因はテキストエディタで書いた文字の一部がISO-2022-JPに変換されなかったためでした。

    ここ,現代でもそのメーラー(MUA)が対応してないという話.

    e-mailで使われる文字エンコードは歴史的経緯からISO-2022-JPであることは有名な話です。しかし、ESMTPが登場したのは1994年7月という昔の話。

    ここで,ESMTPの話が出てくる.ま,ESMTPを実装するMTAの話ですわな.ISO-2022-JPとUTF-8の話をするときにはMUAとMTAの話は切り分けて考えるべきだと思うんだけど.なぜなら身近なところに非対応のMUAがあるので(以下参照).

    今のメーラーならメールヘッダのContent-Typeは正しく理解できるだろうし、Unicodeの対応も行われているのではないでしょうか。

    やっぱりそうではなかった,ということが最初の段落で分かったわけですね.実際,私の携帯電話のMUAもUTF-8では文字化けします.じゃあ,やっぱりISO-2022-JP使った方がトラブルが小さいわけですね→結論.

    もちろん,MUAの実装者が対応するべきという議論はあり得るし,それはそれで進めなければならない.でもそれを利用者に押しつけることはできない.特に携帯電話のMUAみたいに利用者が選びようのないものにとっては.ということで当面はISO-2022-JPでやりとりすべきだと私は思います.

  • mshynd (31907) : 2009年01月18日 19時49分 (#1493614)
    ISO-2022-JP以外のメールは、迷惑メールフォルダ行きです。
    まともなMUAでデフォルトがISO-2022-JPじゃないものってありますか?
  • thorin (14200) : 2009年01月18日 20時47分 (#1493646)
    個人間の同意があれば今でも別に UTF-8 を使っても問題ないですよ。そうでなければ単なる迷惑メールですね。

    現状で既存の ISO-2022-JP と Unicode/UTF-8 との間の変換表が OSごと(MS-Windows,Macintosh,Linux)でばらばらな状態で UTF-8 のメールを許すというのは有りえないでしょう。

    メールのセキュリティ(サインとか、スパム対策)を考えると正常に使っていても文字化けするような状況を導入するのは欠点のほうが多過ぎですよね。

    本気で UTF-8 メールを主流にするなら、UTF-8 と ISO-2022-JP との一意な変換表を RFC か何かで規定することから始める必要があるのではないでしょうか。
  • 恥ずかしながら (スコア:1, 参考になる)

    Anonymous Coward : 2009年01月18日 20時52分 (#1493652)
    ウチはこれにはまってる。UTF-8はやめて。あと10年ぐらい。景気が良くなるまで待って。
    【Office 7】よくある質問と答え(FAQ) - サイボウズ(R) デヂエ(R) [cybozu.co.jp]
  • ① ISO-2022-JP とcharset宣言しておきながら、丸に数字、1文字の℡、カッコ付き㈱
    ② 何故か IANA に無い CP932 ... なのでエラーになったりするのに、これを charset宣言する MUA
    ③ Web では UTF-8 でみんな Happy なのに、保守的にと主張する古いメーラ

    #ここは Web なので、堂々と使ってみる丸に数字

  • Cellea (37481) : 2009年01月19日 9時59分 (#1493908) 日記

    いっそのこと、メール送受信の新規格を作っちゃえばいいんじゃないでしょうかね?
    SPAM問題とかもありますし、既存のものをズルズル引きずることによる弊害も少なくないです。
    かといって大幅に規格を変更して後方互換性を切り捨てるようなやり方では誰もついてこないわけで。

    新しい規格に魅力があれば自然に移行されていくと思うのですがねー。
    (個人的には認証回りがきちんとしてて、SPAMが来なければそれだけで移行の理由になったり。企業レベルでは流石にそう簡単にはいかないでしょうけど。)

  • saitoh (10803) : 2009年01月19日 10時55分 (#1493981)
    現状で既に、
    ・MIMEヘッダ等を適切に書いて
    ・base64なりなんなりで7bitにエンコードして
    ・メールの送信者と受信者が 特定文字コードの使用に合意している とか 入力表示できる MUAを使っている
    ならばUNICODEだろうがSHIFT-JISだろうが通るわけで。 使いたい文字コードを使えばいいのでは?
    どういうMUAを使っているかわからない人に始めてメールを送るときは、日本語環境を持っていそうな人にはISO-2022-JP,日本語環境の有無すら不明ならUS-ASCIIで送っておけば 安全確実、と。そういう最低限の共通仕様としては ISO-2022-JPのままでいいとおもう。
  • 太田 昌孝さんに聞いてください。 mohtaさんね!
  • ISO-2022-JP-3って結局IANAに登録されていない [iana.org]んですよね。なんでその後の動きは無いんでしょうか? (非難しているわけじゃなくて、単になぜなんだろうという疑問です)

    ISO-2022-JP-2(RFC1554 [ietf.org])のように IANAに登録された拡張もあるけれども、 ISO-2022-JP-*って名前であれば万事問題ないという訳でもなく、結局は「対応していないMUAがあるはずだ」ということから移行に踏み切れないし、だったらすでに普及している文字コードを使った方が楽だしISO-2022-JP-3なんて要らない、ということなのでしょうか?

    それはそれでいいんですけど、別にISO-2022-JP-*って名前でなくともいいので何らかの拡張された文字コードと共に「これからの日本語でのインターネットメールやニューズはこの文字コードを使うよ」って書いて統一を促してあるRFCは欲しいです。

    --
    運転手は運転がお仕事。笑うのはブギーポップにはできない僕らのお仕事。
  • 後で検索できないぢゃん。

  • Re:時期 (スコア:1, 興味深い)

    Anonymous Coward : 2009年01月18日 19時56分 (#1493620)
    本文が無意味にHTMLのメールがダメよという話が広まった時期と重なりませんか?

    あの会社の製品のデフォルトが変な文字コードになっていたのが、
    そのまま使うとマナー違反だという話が広まった時期と重なりませんか?
  • いや、メールはすべてpdfに書いたものを添付して送ることにすれば問題解決。

  • RFC2822 でとっくに 1 行 998 文字以下 (CRLF を除く) が MUST になってますね。78 文字以下 (CRLF を除く) はあくまでも SHOULD。

    もっとも、大半の日本語メールは ISO-2022-JP で送る = 70 文字程度で送っているつもりでも 80 バイト 以上になっている場合がある、という罠はありますけどね。

  • iwa (2980) : 2009年01月19日 17時43分 (#1494364)

    事実上、誰もメンテしてないに等しい状況なんですけどねぇ……。>cmail
    # CVSも無い環境でパッチを投げ合ったのは良き思い出(ぉ

  • 15個のコメント が現在のしきい値以下です。