[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: history mojibake
- From: Hideyuki SHIRAI (
白井秀行
) <shirai@xxxxxxxxxxxxxxxxxxx>
 
- Date: Mon, 08 Apr 2002 14:56:58 +0900 (JST)
 
- X-ml-name: emacs-w3m
 
- X-mail-count: 03159
 
- References: <m3wuvoyu2u.wl@gohome.org>
 
From: Yuuichi Teranishi <teranisi@gohome.org> さん曰く
Subject: [emacs-w3m:03128] history mojibake
Message-ID: <m3wuvoyu2u.wl@gohome.org>
Date: Thu, 04 Apr 2002 13:19:05 +0900
寺> http://uranus.ailab.is.tsukuba.ac.jp/~machi/diary/
寺> にいくと、その後 history と db-history が文字化けしてしまいます
寺> (幹 on Emacs 21)。
寺> このあたり、よくわかってないので報告だけですみません。
From: Yuuichi Teranishi <teranisi@gohome.org> さん曰く
Subject: [emacs-w3m:03150] Re: The last character of alt string on about:// is lacked
Message-ID: <m3zo0ir0hm.wl@gohome.org>
Date: Fri, 05 Apr 2002 17:52:21 +0900
寺> あ、そうか。w3mmee + emacs-w3m の場合だけみたいです。
ぼくも文字化けしました。で、なんでかな?と考えると
# 以下、Emacs 用語使用
(1) http://uranus.ailab.is.tsukuba.ac.jp/~machi/diary/
  に行くと、本来? title が "mcHT 日記帳 Second´" だけど、
  dump_extra で w3mmee が "mcHT 日記帳 Second´"
                                             ~~ の部分を
latin-iso8859-1 (Right-Hand Part of Latin Alphabet 1 (ISO/IEC 8859-1): ISO-IR-100)
character: 省略 (04264, 2228, 0x8b4)
 に変えるため、history も iso-iso8859-1 で登録される。これ自体は
 w3mmee の仕様でなにも問題ないですよね、きっと。
(2) history や db-history は単純に w3m-arrived-db などを buffer
    に insert して w3m-coding-system(iso-2022-7bit) に encode し
    て w3mmee に送るので、Emacs 的には iso-2022-7bit で
    jisx0208, latin-iso8859-1 を表現している。
    
(3) この場合だと、w3mmee の "-I <charset>" は指定されないため、
    w3mmee がどんな charset か判定しようとするのだけど、jisx0208
    と iso88591-1 が iso-2022 で encode された以下の
   mcHT ^[$F|5-D"^[(B Second^[.A^[N4</a>
   というコードの解析が失敗する。(ここは不確かです、ごめんなさい)
な感じだと思います。ここで、(3) の挙動が w3mmee のバグなのかどう
かはわかりません。
# w3mmee の 挙動としては、iso8859-1 に ESC されて後、ASCII に復帰せずに、
# 再度 jisx0208 で ESC されるまで文字化けします。
だけど、w3mmee に "-I" で jisx0208 と iso8859-1 をともに含む
charset を指定しようしたところ、ぼくは utf-8 ぐらいしか思いつか
なかったので、とりあえず、
(defcustom w3m-coding-system (if (featurep 'mule)
				 (if (and (eq w3m-type 'w3mmee)
					  w3m-use-mule-ucs)
				     'utf-8
				   'iso-2022-7bit)
			       'iso-8859-1)
  "*Basic coding system for `w3m'."
  :group 'w3m
  :type 'coding-system)
なふうにして、utf-8 で encode して w3mmee に送り込むとうまくうご
きました。
# mule-ucs を持っていないときはどうしましょう。
-- 
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)