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

Re: google での文字化け



From:  Yoichi NAKAYAMA <yoichi@xxxxxxxxx> さん曰く
Subject: [emacs-w3m:08653] google での文字化け
Message-ID: <873bfi3rdb.wl%yoichi@xxxxxxxxx>
Date: Wed, 10 May 2006 23:07:44 +0900

> Google で日本語の検索キーを入れて検索した後の状態(フォームに
> 日本語のキーが入っている状態)で上部の「イメージ」「ニュース」
> などのリンクを辿るとキーが化けてしまいます。w3m 単体でも同様
> だったので emacs-w3m の問題ではないかもしれませんが報告まで。

試しに、

(defun w3m-form-make-form-data (form)
  (let ((plist (w3m-form-plist form))
	(coding (w3m-form-charlst form))
	buf bufs)
    (setq coding (w3m-form-get-coding-system coding))
    (when (eq coding 'shift_jis)
      (setq coding 'utf-8))
    (while plist

  <<snip>>

	       (buffer-string))))
	(let ((form 
	       (mapconcat (lambda (elem)
			    (setq elem (cdr elem))
			    (format "%s=%s"
				    (w3m-url-encode-string (car elem) coding)
				    (w3m-url-encode-string (if (stringp (cdr elem))
							       (cdr elem)
							     "")
							   coding)))
			  bufs "&")))
	  (if (eq coding 'utf-8)
	      (replace-regexp-in-string "shift_jis" "utf-8" form)))))))

などとして、無理矢理 utf-8 にして送りつけたら、その後、news や
image を選択してもちゃんと動きました。

じゃ、なんで最初 google が shift_jis のページでかつ "SHIFT_JIS
で送れ!!" と指定してくるのか?ですが、firefox と比較してみて、

(1) Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
   がないので、utf-8 をサーバが使わない。

(2) 知らない User-Agent: なので、utf-8 なんか使えないだろうなぁ
    とサーバが思っている。

のどちらかぐらいかしら? wget も curl もダメだったし、よくわから
んです。

で、だめもとで、コピペで

(setq w3m-user-agent "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; ja; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3")

% w3m -header "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; ja; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3" http://www.google.co.jp/

とかやったら、ともに utf-8 のページがくるようになり、その後も OK
になりました。だけど、

% w3m -head "Accept-Charset: Shift_JIS,utf-8\;q=0.7,*\;q=0.7" http://www.google.co.jp/

はだめ。う〜〜〜む。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)