Encoding and Servlet API: setContentType or setCharacterEncoding
The javadoc is pretty clear about the difference:
void setCharacterEncoding(String charset)
Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8. If the character encoding has already been set bysetContentType(java.lang.String)
orsetLocale(java.util.Locale)
, this method overrides it. CallingsetContentType(java.lang.String)
with the String oftext/html
and calling this method with the String of UTF-8 is equivalent with callingsetContentType
with the String oftext/html; charset=UTF-8
.
void setContentType(String type)
Sets the content type of the response being sent to the client, if the response has not been committed yet. The given content type may include a character encoding specification, for example,text/html;charset=UTF-8
.
Sebastien Lorber
React expert & early adopter (January 2014) Freelance, working for Facebook/Meta as Docusaurus maintainer since 2020. Author of ThisWeekInReact.com, the best newsletter to stay up-to-date with the React ecosystem:
Updated on February 02, 2020Comments
-
Sebastien Lorber over 4 years
Just wonder what is behind the scene. Actually it seems that we can set the encoding with:
response.setContentType("text/html; charset=UTF-8")
response.setCharacterEncoding("UTF-8")
What is the difference?
-
Mr_and_Mrs_D over 11 yearsI am missing something :
setContentType("text/html"); setCharacterEncoding("UTF-8");
is equivalent tosetContentType("text/html; charset=UTF-8");
or justsetCharacterEncoding("UTF-8");
will do ?