シーンの背景に何があるのだろうか。 実はそれは我々がエンコーディングを設定することができているようです:エンコーディングとサーブレットAPI:setContentTypeまたはsetCharacterEncoding
response.setContentType("text/html; charset=UTF-8")
response.setCharacterEncoding("UTF-8")
違いは何ですか?
シーンの背景に何があるのだろうか。 実はそれは我々がエンコーディングを設定することができているようです:エンコーディングとサーブレットAPI:setContentTypeまたはsetCharacterEncoding
response.setContentType("text/html; charset=UTF-8")
response.setCharacterEncoding("UTF-8")
違いは何ですか?
javadocは違いについてかなり明確である:
void setCharacterEncoding(String charset)
は、例えば、UTF-8に、クライアントに送信される応答の文字エンコーディング(MIME文字セット)を設定します。文字エンコーディングがsetContentType(java.lang.String)
またはsetLocale(java.util.Locale)
によって既に設定されている場合、このメソッドはそれをオーバーライドします。text/html
の文字列でsetContentType(java.lang.String)
を呼び出し、UTF-8の文字列でこのメソッドを呼び出すことは、text/html; charset=UTF-8
の文字列を使用してsetContentType
を呼び出すのと同じです。
void setContentType(String type)
レスポンスがまだコミットされていない場合は、クライアントに送信される応答のコンテンツタイプを設定します。 指定されたコンテンツタイプには、文字エンコーディング指定が含まれている場合があります。たとえば、text/html;charset=UTF-8
です。
@セバスチャン:2つの明確な質問です。2つの投稿に分割する必要があります。 – skaffman
done:http://stackoverflow.com/questions/4865208/bad-encoding-of-streamed-csv-with-stripes-tomcat –
私は何かが不足しています: 'setContentType(" text/html "); setCharacterEncoding( "UTF-8"); 'はsetContentType(" text/html; charset = UTF-8 ");または' setCharacterEncoding( "UTF-8"); –