日本語の検索クエリを投げるときのナゾ?
ニコニコ動画ダウンロードAPIを実装していて、アルファベットのみのクエリなら上手く取得できるが、日本語を含むクエリだと検索結果が0件になってしまうことがあった。
どうやら、クエリをエスケープするとき、一度だけではなく二度エスケープしなければならないらしい。
つまり、検索結果を取得するためのURLを作るときに、
BASE_URL='http://www.nicovideo.jp' @search_type = 'search' @keyword = CGI.escape(keyword) url = "#{BASE_URL}/#{@search_type}?ref=top&s=#{@keyword}"
ではなく、
BASE_URL='http://www.nicovideo.jp' @search_type = 'search' @keyword = CGI.escape(CGI.escape(keyword)) # ←2回エスケープ url = "#{BASE_URL}/#{@search_type}?ref=top&s=#{@keyword}"
としなければならないらしい。なぜだろ?