Java でレスポンスヘッダーの Content-Type に文字コードを指定するには、サーブレットと JSP(Java Server Pages)で異なります。なお、動作環境は Tomcat を使用します。
サーブレット
Tomcat ではデフォルトでサーブレットのレスポンスヘッダーに Content-Type を出力しません。ですので、以下のように自分で出力する必要があります。
resp.setContentType("text/html; charset=utf-8");
このサーブレットの Content-Type は以下のようになります。
Content-Type:text/html;charset=utf-8
JSP
Tomcat は JSP を表示する際、レスポンスヘッダーに Content-Type を UTF-8 でデフォルトで出力します。ですが、明示的に指定した方がよいでしょう。
JSP でレスポンスヘッダーに Content-Type を出力するには、Page ディレクティブで以下のように記述します。
<%@ page contentType="text/html; charset=utf-8" %>
実際には、pageEncoding も指定するようになるでしょう。
<%@ page pageEncoding="utf-8"%>
この JSP の Content-Type は以下のようになります。問題ないですね。
Content-Type:text/html;charset=utf-8
コメント