昨日紹介したとおり Google Deskbar (グーグル デスクバー) は英数字以外の文字をUTF-8でエンコーディングして送ってくる。 一方、 Yahoo! Japan などの日本のサイトの多くはEUCやShift-JISエンコーディングをインプットとして期待しているため、UTF-8エンコーディングの文字が来ると文字化けがおこり思ったとおり検索ができない。 これはバグというより、サーバの仕様の違いによって起こる問題のため、おそらく Google Deskbar の最終版でも直ってはこないだろう。
そこで、Google Deskbar が送ってくるUTF-8エンコードされた文字をShift-JISへ変換するサービスを作ってみた。 使いかたとしては Google Deskbar の Cutomize Search に登録する URL の前に
http://google.andore.com/?url=
を付けるだけ。 Yahoo! Japan の場合
http://search.yahoo.co.jp/bin/search?p={1}
と設定すると下のように文字化けしてしまうのが、
http://google.andore.com/?url=http://search.yahoo.co.jp/bin/search?p={1}
とすることで、このように文字化けせずに表示されるようになる。
この機能は無条件にUTF-8エンコーディングを Shift-JIS エンコーディングへ変更するので、以下のサイトのような、既にUTF-8をサポートしているサイト、(半角)数字だけの入力が必要なサイトの場合はこのサービスを通す必要はない。
- Amazon.co.jp (Amazon.co.jp は UTF-8 を受けつけるためリダイレクトサービスを使う必要はない)
http://www.amazon.co.jp/exec/obidos/external-search?tag=amegan-22&mode=blended&keyword={1} - マピオン (郵便番号を入力した地図検索, 郵便番号を数字とハイフンだけで入力するのでこれもリダイレクトサービスを使う必要はない)
http://www.mapion.co.jp/c/f?uc=11&grp=all&zip={1}
まず、本来のURLを試して、文字化けが起こった場合にリダイレクトサービスを使うことをおすすめする。 個人的に試した限りでは以下のようなサイトの検索はリダイレクトサービスが有効だ。
- Yahoo! Japan
http://google.andore.com/?url=http://search.yahoo.co.jp/bin/search?p={1} - Yahoo! オークション
http://google.andore.com/?url=http://search.auctions.yahoo.co.jp/jp/search/auc?p={1} - Yahoo! 辞書
http://google.andore.com/?url=http://dic.yahoo.co.jp/bin/dsearch?p={1}&d=all&t=f - FreshEye
http://google.andore.com/?url=http://search.fresheye.com/?ord=s&rt=&query=&kw={1} - 楽天
http://google.andore.com/?url=http://esearch.rakuten.co.jp/rms/sd/esearch/vc?sv=2&sitem={1}
このサービスを介すことで、ほとんどのサイトでGoogle Deskbar から日本語検索することができるようになると思う(enc=euc-jp&url= と url=の前に enc=euc-jpを付けることで euc-jp への変換も可能だが、大抵は Shift-JIS で大丈夫だろう)。 自分の好きな検索サイトを追加して、Google Deskbar を有効に使おう。
リダイレクトサービスの問題点、改善点、他にも有用そうな検索 URL を見つけたらコメントに追加していって欲しい。
Comments