...
POST
requests should specify the encoding of the parameters and values they send. Since many clients fail to set an explicit encoding, the default is used is US-ASCII
for application/x-www-form-urlencoded
and ISO-8859-1
for all other content types.
...
It is also possible to define such a filter in the Tomcat installation configuration file conf/web.xml
, which would set the request character encoding across all web applications without the need for any web.xml
modifications. In fact the latest Tomcat versions come with sections in conf/web.xml
that already configure a filter to set the request character encoding to UTF-8
. Simply edit conf/web.xml
and uncomment both the definition and the mapping of the filter named setCharacterEncodingFilter
.
...
- Set
URIEncoding="UTF-8"
on your <Connector> inserver.xml
. References: HTTP Connector, AJP Connector. - Use Set the default request character encoding either in the Tomcat
conf/web.xml
file or in the web appweb.xml
file; either by setting<request-character-encoding>
or by using a character encoding filter with the default encoding set to UTF-8. - Change all your JSPs to include charset name in their contentType. For example, use
<%@page contentType="text/html; charset=UTF-8" %>
for the usual JSP pages and<jsp:directive.page contentType="text/html; charset=UTF-8" />
for the pages in XML syntax (aka JSP Documents). - Change all your servlets to set the content type for responses and to include charset name in the content type to be UTF-8. Use
response.setContentType("text/html; charset=UTF-8")
orresponse.setCharacterEncoding("UTF-8")
. - Change any content-generation libraries you use (Velocity, Freemarker, etc.) to use UTF-8 and to specify UTF-8 in the content type of the responses that they generate.
- Disable any valves or filters that may read request parameters before your character encoding filter or jsp page has a chance to set the encoding to UTF-8. For more information see http://www.mail-archive.com/users@tomcat.apache.org/msg21117.html.
...