Landscape トップページ | < 前の日 2005-10-03 2005-10-04 次の日 2005-10-05 >

Landscape - エンジニアのメモ 2005-10-04

Yahoo 検索で文字が表示されない・文字化けする件の対処法


* Yahoo 検索で文字が表示されない・文字化けする件の対処法

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Mozilla] [IE]

Yahoo Search http://search.yahoo.co.jp/ やその検索結果画面 http://search.yahoo.co.jp/search?p=sonic64.com&ei=UTF-8& ... で、日本語が表示されなかったり文字化けするときは、ブラウザの UserAgent と Accept-Charset の設定を見直すと文字化けを解消できるかもしれない。

- UserAgent によって返されるデータが異なる?

IE コンポーネント型タブブラウザの Sleipnir Version 1.66 で Yahoo Search を見ると、アルファベットと数字以外が全く表示されない。文字化けというより、文字が欠落しているという感じ。Sleipnir がおかしいのかな? と思って Internet Explorer でブラウズすると、問題なく表示される。Firefox でも問題なく表示される。Firefox は Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7.12) Gecko/20050919 Firefox/1.0.7 を使っている。

文字化けしたときの html ソースを見ると、charset が ISO-8859-1 になっている。日本語文字列が入っているのに ISO-8859-1 を指定されていれば文字化けして当然。というか、そもそも htmlの データ自体がおかしいようだ。meta だけじゃなくて、データそのものが変。

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Yahoo!  </title>

いろいろ試した結果、UserAgent が Sleipnir Version 1.66 だと文字化けするようだ。Firefox でも同じ現象。ただ、Accept-Charset があると化けない。たとえば、Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7 を送出している場合は utf-8 で返してくれる。

文字化けしたときの HTTP トランザクション。わざと Accept-Encoding を送らないようにた Firefox でリクエストしてみた。Content-Type レスポンスヘッダにも text/html; charset=ISO-8859-1 が入ってる。

GET / HTTP/1.1
Host: search.yahoo.co.jp
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7.12) Gecko/20050919 Firefox/1.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html; q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK
Date: Tue, 04 Oct 2005 10:18:06 GMT
P3P: policyref="http://privacy.yahoo.co.jp/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
Cache-Control: private
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
Content-Encoding: gzip
Set-Cookie: **************************

- UserAgent を IE に偽装したら文字化けしなくなった

Sleipnir に Accept-Encoding を送出させるようにすることは大変そうなので、UserAgent をIE に偽装してやれば対処できそうだ。試しに Sleipnir の UserAgent をMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) に偽装したら文字化けしなくなった。

- 何が文字化けの原因?

これって何が原因? Apache2 で Default Charset が ASCII になっちゃうという問題があると聞いたことがあるけど、まさか Yahoo がそんな初歩的な問題につまづくとは思えない。そもそも Yahoo って Apache 使ってるのかな?

HTTP サーバー以外の部分も原因として挙げられそう。Yahoo ともなるとクライアントとサーバの間にデータの圧縮やロードバランシングを担当する機器がいろいろ入ってるだろうから、それのどこかがおかしいとか?

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。