Pracuji na webu, který je v dánštině. Používám kódování utf-8.
Vše funguje skvěle - až do chvíle, kdy na stránce použiju pro formátování
data <fmt:formatDate />.
V tu chvíli se výsledné kódování stránky změní na iso-8859-2, takže jsou
veškeré "non english" znaky poničeny.
Konfigurace: Tomcat 4.1.31, java 1.4.2 (používám Spring, JSP - ale to
podle mého není důležité)
Co všechno jsem už zkoušel:
- nastavovat kódování ve filtru:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
chain.doFilter(request, response);
}
- nastavit kódování přímo na stránce:
<?xml version="1.0" encoding="utf-8"?>
<[EMAIL PROTECTED] pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
- nastavit content type v controlleru:
response.setContentType("text/html; charset=utf-8");
- přidat "-Dfile.encoding=utf-8" do CATALINA OPTS (viz
http://blog.softeu.cz/tomcat-a-problemy-s-kodovanim/)
Hledal jsem asi 3 hodiny na internetu...a dočetl jsem se, že je to chyba
Tomcatu 4.x, upgrade na Tomcat 5.x to prý vyřeší. V mém případě ale tohle
není řešení - upgrade provést nelze.
Má někdo nějaký tip?