cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

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が開いているときは文字コードユニコードになるっぽい?
まぁ出番が終わったらすぐに閉じろということだ。)


ちなみに、文字化けを調べるには

がお勧め。
内側四角が変換前、外側変換後。

ただしインターフェイスが悪いので先に

で調べてからのほうがいい。
こっちは表示されない化け文字があるという問題があるのだが。