GAE
import java.io.IOException; import java.util.Iterator; import javax.servlet.http.*; import twitter4j.Paging; import twitter4j.Status; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.TwitterFactory; @SuppressWarnings("serial") public class TwitterGAE2Servlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain"); resp.getWriter().println("Hello, world"); resp.setCharacterEncoding("UTF-8"); Twitter twitter = new TwitterFactory().getInstance("ユーザ名","パスワード"); Paging page = new Paging(1); try { Iterator<Status> iterator = twitter.getFriendsTimeline(page).iterator(); while (iterator.hasNext()) { Status status = (Status) iterator.next(); resp.getWriter().println(status.getText()); } } catch (TwitterException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } }
ローカルで実行すると発言が全部"??????"と表示されてしまう。
http://sites.google.com/site/bot2uku/2009-08-15_j1
ここで説明されている通り
resp.setCharacterEncoding("UTF-8");
で文字コード指定しているんだけどなー。
追記:直った。なんでかさっぱりですが
resp.setContentType("text/plain charset=UTF-8"); req.setCharacterEncoding("UTF-8");
でeclipse再起動してもう一度実行したら正しく表示された
"TwitterGAE"という名前のプロジェクトがでてエラーが全く消えなくて新しく"TwitterGAE2"ってプロジェクト作って実行したら初めの画面に
Hello App Engine!
Available Servlets:
TwitterGAE
って出てきてこれにも今いち何が原因なのかわからない。TwitterGAEプロジェクト消してEclipse再起動したら
Hello App Engine!
Available Servlets:
TwitterGAE2
って直ったけど。