[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: w3m-type for w3m-0.3-m17n-20020316.tar.gz
From: SAITO Takuya <reed@lily.freemail.ne.jp> さん曰く
Subject: [emacs-w3m:03003] w3m-type for w3m-0.3-m17n-20020316.tar.gz
Message-ID: <20020317.181534.74754808.reed@lily.freemail.ne.jp>
Date: Sun, 17 Mar 2002 18:15:34 +0900 (JST)
> $ w3m -version
> w3m version w3m/0.3+cvs-1.342-m17n-20020311, options lang=...
丁度同じ w3m-m17n を持っていたので試したのですが、
> すると、mew-shimbunでzdnet.compの記事が文字化けして取得される
> ようになってしまいました。
> 例えば http://www.zdnet.co.jp/news/0203/15/e_coursey.html などです。
たしかに化けまくりますね。
> ただし、全てが化ける訳ではなく、rubyの記事は正常に取得できます。
けど、化ける記事は wanderlust でも化けるし、(試していませんが)
T-gnus で shimbun しても化けるんじゃないかな。w3mmee も化ける
sb-*.el があると思います。
原因としては、w3m-m17n だと retieve 結果の buffer が *生* のバイ
ト列だけど、w3m だと *生じゃない* データで、shimbun 自体は *生じゃ
ない* と思って動いているからだと思います。
例えば、sb-zdnet.el に関してだけいえば、
shimbun.el:
(defun shimbun-make-mime-article (shimbun header)
"Make a MIME article according to SHIMBUN and HEADER.
If article have inline images, generated article have a multipart/related
content-type if `shimbun-encapsulate-images' is non-nil."
(let ((case-fold-search t)
(count 0)
beg end
url type img imgs boundary charset)
(current-buffer)
* (when (eq w3m-type 'w3m-m17n)
* (set-buffer-multibyte t)
* (decode-coding-region (point-min) (point-max) 'undecided))
(setq charset
(upcase (symbol-name
(detect-mime-charset-region (point-min)(point-max)))))
(goto-char (point-min))
<<ship>>
sb-zdnet:
(luna-define-method shimbun-get-headers ((shimbun shimbun-zdnet)
&optional range)
* (when (eq w3m-type 'w3m-m17n)
* (set-buffer-multibyte t)
* (decode-coding-region (point-min) (point-max) 'undecided))
(funcall (intern (concat "shimbun-zdnet-"
(shimbun-current-group-internal shimbun)
"-get-headers"))
shimbun))
と header と body を扱う前に decode-coding-regino すれば文字化け
しなくなります。
# set-buffer-multibyte() が必要かどうかは良くわからない ^^;
> これは、
> w3m-0.3-m17n-20020316.tar.gzを使うときのw3m-typeは、'w3m でよい
> w3m-typeが 'w3m-m17n でも文字化けせずに取れるべき
おそらく後者でしょう。きっと、昔からダメだったんじゃないのかなぁ?
ぼくが zdnet に適用した方法を全体的にうまくやればいいと思うのだ
けど、ぼくには上記の様な泥臭い方法しか考え付きません。なにか、き
れいな方法はあるでしょうか?
sb-tcup.el などにある、
(decode-coding-region (point-min) (point-max)
(shimbun-coding-system-internal shimbun))
をみんな設定すればいいのかな? とも思うのですが、
shimbun-coding-system-internal ってどこでどうなっているのかさえ
わからない。
--
白井秀行@結局、良くわからないままお昼休みが終わってしまった。^^;;;