ウォンツテック

そでやまのーと

Java ServletAjax文字コード

 ブラウザからGETなりPOSTをしてServletに日本語を送った場合、
 Servlet側でrequest.getCharacterEncodingで調べるとnullになっている。すなわちデフォルトの「iso-8859-1」になっている。
servlet側でこの文字コードのまま扱うと色々弊害が出てくるので
一旦出力する文字コードを以下のように変換する。

try {
    message = new String(message.getBytes("iso-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
    //エラー処理
}

この例の場合、デフォルトで認識されている「iso-8859-1」を「UTF-8」に変換している。
さらに、ブラウザに出力する時にはContent Typeを以下のように明示的に指定しておく。

response.setContentType("text/html; charset=UTF-8");
※getWriter()する前に行う