[mew-dist 19463] Re: text/html without charset specification
KIUCHI Hirohiko
kiuchi at example.com
2001年 10月 23日 (火) 21:43:22 JST
木内です。
始めから引用が前後します。
> From: Hideyuki SHIRAI (白井秀行) <shirai at example.com>
> Date: Tue, 23 Oct 2001 17:20:31 +0900 (JST)
>
> > の指定はありません。META での指定がないとはいえ、EUC を選んで送って
> > きたものは EUC で扱いたい気がします。
>
> これは(簡単には)無理でしょう。EUC かどうかの判定するのには生のバ
> イトデータとして扱わなければならないですから。
これは、いったんバッファに取り込んだデータを扱うからですね。'y' で保存
するときと同じようにすればできるはずだと思います。しかし、そうすると
META の指定に合わせたいという白井さんの要求が満たせなくなる。指定がな
いときだけ生データを使うというのはかっこ悪いですね。
> ちなみに、ぼくのパッチを使うと、
>
> (1) html が <meta + content-type + charset> を持っていたら、その
> charset から導かれる coding-system でセーブする。
>
> (2) mime の content-type で charset が指定されていたら、その
> charset から導かれる coding-system でセーブする。
>
> (3) (1), (2) が指定されていないときは、charset を guess する。そ
> の結果、通常の日本語の場合、保存する coding-system は
> iso-2022-jp となる。
>
> というプライオリティで charset と coding-system を決定するように
> なります。
>
> > Win2K/2.0.51 の環境でパッチを当てて、件の HTML を表示してみました。
> > 今度は JIS に変換されてしまいます。
>
> この場合は (3) になっているのだと思います。
ブラウザでは設定されたエンコーディングで解釈しようとするので、それが
iso-2022-jp でないと、選びなおす必要が生じます。好みにより、保存する
coding-system を選べるといいですね。実行時ということではなくて、.emacs
か .mew.el にブラウザに設定したのと同じエンコーディングを設定すると
いう意味です。
そうして、素直に表示できるようになれば、C-c C-e はあくまで表示のため
と割り切れるかと思います。多少気持ち悪いけど。
> もし、mime の content-type で charset=us-ascii と指定された場合
> は、パッチ前でもパッチ後でも coding-system の指定が nil となりま
> す。そのため、保存するときは、その Emacs の
> default-coding-system が使われると思います。
これは多分 buffer-file-coding-system のことですね。Meadow では
japanese-shift-jis-dos になってました。
> > 白井さんのパッチでは、これを統合したのでしょうか。
>
> 統合というか、挙動を変えた、という感じかしらん。
統合というと大げさですが、charset がない場合と us-ascii のときの処理
を同じにするという意味で書きました。しかし、Meadow では us-ascii が
指定されたときは shift_jis になり、無指定のときは iso-2022-jp になる
ということのようですから、統合はされていないですね。
日本語が入っているのに us-ascii と指定するのはもともとおかしいので無
視してもいいのですが、無指定のときと同じ振る舞いの方がわかりやすい気
がします。
逆に、同じ振る舞いにしないのであれば、無指定のときに Summary に
us-ascii と表示するのはやめるべきでしょう。
ともかく、C-c C-e でブラウザで表示できるようになったのはよかったです。
ありがとうございます。
kiuchi
Mew-dist メーリングリストの案内