Bom dia!
Venho enfrentando um problema de acentuação ao utilizar o Jetty 6 como meu servidor Web.
Se eu digitar qualquer texto acentuado e mandar efetuar o SUBMIT ele encaminha os caracteres acentuados com interrogação (?).
Existe algum arquivo de configuração do JETTY 6 para forçar a conversão ISO-8859-1 ?
No meu arquivo web.xml eu tenho a seguinte configuração:
<!-- JSP Configuration -->
<jsp-config>
<jsp-property-group>
<display-name>todos os jsps</display-name>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/WEB-INF/jsp/header.jspf</include-prelude>
<include-coda>/WEB-INF/jsp/footer.jspf</include-coda>
</jsp-property-group>
</jsp-config>
Sendo assim, todos os meus .JSP´s são carregados com o header:
<META HTTP-EQUIV="CONTENT-LANGUAGE" CONTENT="pt-br">
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
No Tomcat 6 existe o arquivo /tomcat/conf/web.xml e nele eu consigo configurar
<servlet>
...
...
<init-param>
<param-name>javaEncoding</param-name>
<param-value>ISO-8859-1</param-value>
</init-param>
...
...
Alguma orientação ou dica ?
Ogrigado
Que método você está usando para submeter: POST ou GET?
Via formulários o método é POST, já via requisição AJAX é GET.
Sem poder te ajudar muito mas ve se isso resolve
quando vc for salvar
public class ConverteString {
private static ConverteString instance = null;
private ConverteString() {}
public static ConverteString getInstance() {
if (instance == null) {
instance = new ConverteString();
}
return instance;
}
public String encode(String isoString)
{
String utf8String = null;
if (null != isoString && !isoString.equals(""))
{
try
{
byte[] stringBytesISO = isoString.getBytes("ISO-8859-1");
utf8String = new String(stringBytesISO, "UTF-8");
}
catch(UnsupportedEncodingException e)
{
// As we can't translate just send back the best guess.
System.out.println("UnsupportedEncodingException is: " + e.getMessage());
utf8String = isoString;
}
}
else
{
utf8String = isoString;
}
return utf8String;
}
}
Via formulários o método é POST, já via requisição AJAX é GET.
[/quote]
O Jetty tem uma propriedade de sistema chamada org.mortbay.util.URI.charset onde você pode definir o encoding. Me parece que o default do Jetty é UTF8.
Obrigado batista.gerson, mas este tipo de abordagem iria me custar muito retrabalho…
Via formulários o método é POST, já via requisição AJAX é GET.
[/quote]
O Jetty tem uma propriedade de sistema chamada org.mortbay.util.URI.charset onde você pode definir o encoding. Me parece que o default do Jetty é UTF8.[/quote]
Olá esmiralha, infelizmente ainda não deu certo!
Segui a tua dica e coloquei para carregar no JAVA_OPTIONS=-Dorg.mortbay.util.URI.charset=ISO-8859-1
O Jetty subiu corretamente, veja:
/etc/jdk1.6.0/bin/java -Djetty.port=8080 -Dorg.mortbay.util.URI.charset=ISO-8859-1 -Djetty.home=/etc/jetty -Djava.io.tmpdir=/tmp
Mas infelizmente os caracteres acentuados estão vindo com interrogação (?)
Você já tentou usar: SevletRequest.setCharacterEncoding(“text/html;charset=ISO-8859-1”) antes de ler qualquer parâmetro ou atributo do Request?
[ ]s
[quote=esmiralha]Você já tentou usar: SevletRequest.setCharacterEncoding(“text/html;charset=ISO-8859-1”) antes de ler qualquer parâmetro ou atributo do Request?
[ ]s[/quote]
Olá esmiralha.
Meu projeto utiliza o vRaptor 2.6.0 e neste caso eu teria que criar um Interceptador ou utilizar um existente para atribuir setCharacterEncoding(“text/html;charset=ISO-8859-1”)
Mas acho que ainda o problema esta na configuração do Jetty, deve existir algum arquivo .XML para definir o locale correto.
Editado:
Nossa mesmo criando um Interceptador e definindo o setCharacterEncoding não vai!..
Continua gravando com interrogações… que coisa estranha.
Nenhuma solução neste caso poxa chega nos controllers os caracteres zuados.
Segue um exemplo, de config no jetty.xml da aplicação para corrigir o problema
JAVA_OPTIONS = " -Dfile.encoding=ISO-8859-1 -Dorg.mortbay.util.URI.charset=ISO-8859-1 -Duser.language=pt -Duser.region=BR -Duser.timezone=Brazil/East -Dlog4j.configuration=log4j.xml -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n -Dorg.mortbay.http.Version.paranoid=true "
o detalhe era " -Dfile.encoding=ISO-8859-1 -Dorg.mortbay.util.URI.charset=ISO-8859-1 "