[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)