[RESOLVIDO] Códificação UTF-8 e ISO ... problema dificil (funciona só na metade do site)

1 resposta
Lavieri

Estou com um problema bizzarro! de códificação....

se deixo tudo UTF-8, metade dos forms funcionam e a outra métoda vem com caracter maluco.... se faço com ISO, vira o contrario, o que falhava passa a funcionar e vice versa...

Não sei mais o que fazer.. segue minhas configurações..

todo meu site é escrito em UTF-8, incluindo os códigos e as páginas JSP .... o problema é que alguns posts estão vindo com encodificação errada....

eu tenho as seguintes configurações...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<head> 
    <meta http-equiv="content-language" content="pt-br" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

estou usando vraptor... no meu web.xml tem

<context-param>
		<param-name>br.com.caelum.vraptor.encoding</param-name>
		<param-value>UTF-8</param-value>
	</context-param>

ainda peguei uma receita de bolo, de um filtro que achei na internet... e estou usando ele

<!--CharsetFilter begin-->
	<filter>
		<filter-name>Charset Filter</filter-name>
		<filter-class>br.com.simtecnologia.filters.CharsetFilter</filter-class>
		<init-param>
			<param-name>requestEncoding</param-name>
			<param-value>UTF-8</param-value> 
		</init-param> 
	</filter>

	<filter-mapping>
		<filter-name>Charset Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!--CharsetFilter end-->
public class CharsetFilter implements Filter {

	private String encoding;

	public void init(FilterConfig config) throws ServletException {
		encoding = config.getInitParameter("requestEncoding");
		if (encoding == null)
			encoding = "UTF-8";
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain next) throws IOException, ServletException {
		// Respect the client-specified character encoding // (see HTTP
		// specification section 3.4.1) if(null ==
		// request.getCharacterEncoding())
		request.setCharacterEncoding(encoding);
		next.doFilter(request, response);
	}

	public void destroy() {
	}

}

Enfim o fato é....

1 Resposta

Lavieri

coloquei isso no FORM =>

<form accept-charset="ISO-8859-1"> ....

e resolveu

Criado 3 de março de 2010
Ultima resposta 3 de mar. de 2010
Respostas 1
Participantes 1