« YouTuber.jsp * Tomcat | メイン | prototype.js * YouTuber.jsp(Ajax) »

YouTuber.jsp * Tomcat (2)


日本語対応の件を一応解決したのでログ。
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内で上記のエンコードを行ったら成功した。
ちなみにやはり一部日本語が完全に戻らない。。



About

2006年08月19日 03:33に投稿されたエントリーのページです。

ひとつ前の投稿は「YouTuber.jsp * Tomcat」です。

次の投稿は「prototype.js * YouTuber.jsp(Ajax)」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。