Lukasz,
> All my JSP pages have <%@page contentType='text/html; charset=utf-8'%> > directive on top and the browser should get them in UTF-8. When I use > <fmt:message> tags, the encoding is reset to my locale's default > encoding (which is iso-8859-2 for pl_PL). How can I stop fmt:* tags > from resetting response encoding? according to section 8.4 ("Response Encoding") of the JSTL spec, "any i18n action that establishes a localization context is responsible for setting the response's locale of its page [...] This is done by calling method ServletResponse.setLocale() with the locale of the localization context." Notice that the Servlet 2.3 and JSP 1.2 specs have been ambiguous with respect to how/if ServletResponse.setLocale() should affect the response char encoding of a page that already contains a page directive with a 'content-type' attribute with a charset component, as in your example. JSP 1.2 Errata_a (see http://jcp.org/aboutJava/communityprocess/maintenance/jsr053/errata_1_2_a_200203 21.html), Issue 1 ("i18n: Dynamic PAge Character Encoding Clarification") attempts to resolve this ambiguity, by specifying that a container must call ServletResponse.setContentType() with the initial content type before processing the page, and that the content type (and char encoding) may then be changed dynamically by calling setContentType() or setLocale(), with the most recent call taking precedence (see clarification of JSP.3.3: "Dynamic Content Type" in JSP 1.2 Errata_a). In your example, the container determines the char encoding associated with the "pl" locale to be ISO-8859-2, and uses this charset to override the charset specified in the page directive. (Tomcat uses its "CharsetMapperDefault.properties" resource to map a locale to its charset.) JSP 1.2 Errata_a is currently being reconsidered by the Servlet 2.4 and JSP 2.0 expert groups, with some experts arguing that setLocale() should always set the response's Content-Language header, but should not override the response's char encoding that was set using setContentType() or setCharacterEncoding(). Hope this answers your question. Jan -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>