まぁhatenaのブログ検索自体はそんなに不具合を感じないのでいいのだけれど、他のサイトでGoogle Co-opを導入するときの問題を考えてみたよ。
google co-opの導入方法については、WWW WATCHさまに詳細な導入方法があるのでそちらを参考にする。
5分でわかる Google Co-op 導入方法 | WWW WATCH
で、ここまでで、Google Co-opは導入できたとしましょう。
ここからが本題。Google Co-opではUTF-8のサイトでは利用できてもEUC-JPのサイトでは文字化けを起こしてしまいます。今回はその対応方法を解説。
Google Co-op導入時点でのjavascriptのソースコードは以下のようになると思います。
<!-- Google CSE Search Box Begins --> <form id="searchbox_013797828257052954738:zx6jgpm9s5u" action="http://www.google.com/search"> <input type="hidden" name="cx" value="013797828257052954738:zx6jgpm9s5u" /> <input type="hidden" name="cof" value="FORID:0" /> <input name="q" type="text" size="40" /> <input type="submit" name="sa" value="Search" /> <img src="http://www.google.com/coop/images/google_custom_search_smnar.gif" alt="Google Custom Search" /> </form> <!-- Google CSE Search Box Ends -->
変更するポイントは2つ。
1.フォームのactionをhttp://www.google.com/searchから、http://www.google.com/cseに変更
2.hiddenコードで文字エンコーディングを伝えてやる。
<input name="ie" value="EUC-JP" type="hidden"> <input name="oe" value="EUC-JP" type="hidden">
そうすると以下のようになると思います。
<!-- Google CSE Search Box Begins --> <form id="searchbox_013797828257052954738:zx6jgpm9s5u" action="http://www.google.com/cse"> <input type="hidden" name="cx" value="013797828257052954738:zx6jgpm9s5u" /> <input type="hidden" name="cof" value="FORID:0" /> <input name="ie" value="EUC-JP" type="hidden"> <input name="oe" value="EUC-JP" type="hidden"> <input name="q" type="text" size="40" /> <input type="submit" name="sa" value="Search" /> <img src="http://www.google.com/coop/images/google_custom_search_smnar.gif" alt="Google Custom Search" /> </form> <!-- Google CSE Search Box Ends -->