JSP,サーブレットでの文字コードで悩んだら
問題個所をいろいろ特定するよりも、フィルタに
response.setContentType("text/html; charset=utf-8"); response.setContentType("text/html; charset=utf-8");
を登録したほうが手っ取り早い。ていうかこんなことに4時間近く時間を取られた。
(ちなみに原因の一つは
PrintWriter out = response.getWriter();
した後に、フォワードの処理
ServletContext sc = getServletContext(); String forward = getForward(); RequestDispatcher rd = sc.getRequestDispatcher(forward); rd.forward(request, response);
を入れて、そのあとに
out.close();
していたのが悪かった。
PrintWriterが開いているときは文字コードがユニコードになるっぽい?
まぁ出番が終わったらすぐに閉じろということだ。)
ちなみに、文字化けを調べるには
がお勧め。
内側四角が変換前、外側変換後。
ただしインターフェイスが悪いので先に
で調べてからのほうがいい。
こっちは表示されない化け文字があるという問題があるのだが。