[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: history mojibake



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)