■
ブラウザから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()する前に行う