日本語対応の件を一応解決したのでログ。
JSP内でrequestを受け取る時に、
request.setCharacterEncoding("UTF-8"); <--コレ
String keyword = request.getParameter("q");
String pages = request.getParameter("pages");
コレにあるように指定すると、GETで飛んできたものをUTF-8にエンコードできる。
ところがこれは表示用文字化け対策としてGETで飛んできたものをエンコードするので、
それをそのままJSP内のJavaコンストラクタとかに投げると当然youtube側にリクエストできなくなる。
つまり、[漫才]で検索した場合、上のコードのままkeywordをJavaに渡すと、
youtube.com?q=漫才
みたいな感じで問い合わせてしまうので、当然結果は返ってこない。
なので、JSP側でもっかい
String encoded = URLEncoder.encode(keyword, "UTF-8");
として日本語文字列を
%E3%83%86%E3%83%AC%E3%83%93
のような形にエンコードしてからJava側に投げる。
これは最初Javaのクラスファイルの中でそう言う処理をさせていたが、それだと何故かうまくいかなかったので、JSP内で上記のエンコードを行ったら成功した。
ちなみにやはり一部日本語が完全に戻らない。。