何が舞台裏にあるのだろう。実際、次のようにエンコードを設定できるようです:
response.setContentType("text/html; charset=UTF-8")
response.setCharacterEncoding("UTF-8")
違いはなんですか?
javadoc は違いについてかなり明確です:
void setCharacterEncoding(String charset)
クライアントに送信される応答の文字エンコード(MIME文字セット)を、たとえばUTF-8に設定します。文字エンコーディングがsetContentType(Java.lang.String)
またはsetLocale(Java.util.Locale)
によってすでに設定されている場合、このメソッドはそれをオーバーライドします。 _text/html
_の文字列でsetContentType(Java.lang.String)
を呼び出し、UTF-8の文字列でこのメソッドを呼び出すことは、setContentType
を文字列で呼び出すことと同等です。 _text/html; charset=UTF-8
_の.
void setContentType(String type)
応答がまだコミットされていない場合、クライアントに送信される応答のコンテンツタイプを設定します。 指定されたコンテンツタイプには、_text/html;charset=UTF-8
_などの文字エンコーディング仕様を含めることができます。