Googleの検索サービスがAPIで公開されていて自由(?)に利用することができる。自分のアプリケーションに組み込もうとした際、日本語を扱う民族としての宿命か文字コードがネックとなってくる。Google検索サービスでは日本語のデフォルトをsjis、jis、euc-jpとしているようで、よくつかわれるUTF-8だと文字化けが発生する可能性が高い。また、数パターンは成功するが、数パターンは文字化けといった不思議な現象にも遭遇してしまう。この現象を解決するには検索サービスへのパラメタとしてie、oeをそれぞれ指定する。これはinput encode、output encodeの略(たぶん)で、qパラメタで送信した情報がどういった文字コードなのか、そしてどういった文字コードで返却してほしいのかをサービスへ伝えるためのパラメタになる(たぶん)。これらを適切に指定することで日本語を扱う際に文字コードの相違による文字化けに会うことはなくなる。
参考サイト
例)サジェストサービスに問い合わせ(UTF-8で処理したい場合)
p=self.request.get('p') query = {'hl': 'ja', 'xml': 'true', 'ie': 'utf_8', 'oe': 'utf_8', 'q': p.encode("utf-8") } urlRequest="http://google.com/complete/search?"+urllib.urlencode(query) |
google >