<%@tagliburi="http://java.sun.com/jsp/jstl/fmt"prefix="fmt"%><%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/>
...
Conteúdo que chega no Controller, pela variável ‘coluna’:
Código
Se escrevo sem acentuação, funciona direito.
Se a mesma palavra com acento e enviada em um input tipo text, também vai bem.
Se alguém tiver alguma sugestão, agradeço.
tenta escapar os acentos no link (trocar os acentos por %F3, ou coisas do tipo)… é fácil fazer isso com javascript, que já tem a função escape que recebe uma string e retorna ela escapada desse jeito… passar acentos via query na url não é bom, e nem eh o padrão…
P
Paulo_Silveira
Oi cinei
É exatamente isso, alguns browser (particularmente o IE) não fazem o “url encoding” quando você acessa uma URL. E mesmo quando fazem, cada um vai fazer num encoding diferente, já que as URLs por padrão deveriam ter acentos (basicamente um ASCII): http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
C
cinei
Ok pessoal, obrigado.
Vou procurar uma alternativa para enviar os parametros sem acentos.
Terei que alterar em vários lugares ou deixar charset =ISO-8859-1, que até agora não deu problema.
L
Lucas_Cavalcanti
antes tenta escapar os acentos com aquele javascript que eu te mandei…
escape("alguma String com acentos e espaços");
G
garcia-jj
Apenas complementando o que o pessoal falou, é aconselhado você sempre fazer o encoding da URL. Se você enviar como parametro fica tudo bem, mas quando você coloca na URL fica esse caos. No Java há as classes java.net.URLEncoder e java.net.URLDecoder.
Uma coisa que você deve notar, independente desse caso da URL, é que seus arquivos estejam sendo salvos com o mesmo encoding que você especificou no seu projeto e nos headers do html. Já ví casos do pessoal salvando arquivos em iso-8859-1 e colocando o encoding como utf-8. No meu caso como o padrão do Linux já é uft-8 não tive problemas, mas se não me engano no windows é iso-8859-1, que é o mesmo cp15xx.
Abraços
C
cinei
Farei isso mesmo, Lucas. Valeu pela dica.
Garicia, terei o cuidado de manter nas diversas ferramentas o encoding equivalentes (html, banco, Eclipse, …) .
B
bronx
Aproveitando o hook…
Estou tendo [quase] o mesmo problema.
No meu caso, isso ocorre quando utilizo o jQuery para fazer um POST via ajax. Meus dados acentuados ficam sinistros:
Próximo //Próximo
São Paulo //São Paulo
e por aí vai…
Estou usando ISO-8859-1, e [acho que] já setei essa informação em todos os cantos necessários:
passei por problemas semelhantes, só que no meu caso é utf
B
bronx
Lavieri,
Valeu pelo help. Mas olha o meu post anterior…eu já havia feito isso! rs
Mais alguém passou por essa situação?? =/
L
Lavieri
bronx:
Lavieri,
Valeu pelo help. Mas olha o meu post anterior…eu já havia feito isso! rs
Mais alguém passou por essa situação?? =/
lol! eu vi errado… mau ai…
eu passei sim por isso… mas foi com UTF, passei maus bucados…
saiba que as tags aceitam encoding e nelas eu também coloquei o UTF … por padrão o javascript com ajax usa ISO, então seu problema é provavelmente outro… se o dados estão indo parar errado no banco, pode ser o encoding do banco… se for no método, ai é o encoding do server mesmo…
enfim… eu sofri pra resolver…
usei accept-charset nos entre outras coisas… pesquisei na net, e encontrei algumas formas de setar encoding nos ajax… mas no final… o que melhor resolveu foi a tag do vraptor (eu uso a versão mais nova do vraptor)
G
garcia-jj
Há uma coisa importante. Além de você declarar seu charset, seja dele UFT-8/16 ou ISO-8859-1 você precisa salvar seus arquivos nesse mesmo formato, e cuidar para que o container também trabalhe nesse formato.
Não que o charset do appserver e do SO seja um ítem fundamental, porém é importante estarem todos de acordo, isso evitará problemas.
Outro dia um amigo comentou que estava usando UTF-8 no Jdeveloper e sempre que sincronizada com o Source (un)Safe os caracteres vinham deformados. Após uma série de pesquisas ele notou que o charset do VSS estava como ISO-8859-1.
Eu tomei por decisão usar tudo como UTF-8, já que esse é o padrão do Unix. Desde meu Eclipse, appservers, banco de dados, tudo com UTF-8, e não tive mais problemas.
L
Lavieri
garcia-jj:
…
Eu tomei por decisão usar tudo como UTF-8, já que esse é o padrão do Unix. Desde meu Eclipse, appservers, banco de dados, tudo com UTF-8, e não tive mais problemas.
fiz o mesmo… tudo em UTF-8 … o meu problema ocorreu pq estava faltando o UTF no encoding do vraptor… como o ajax postava tudo em ISO, o contianer respondia em iso, e vinha os problemas… depois q coloquei o treco do vraptor, tudo resolveu…
mas faço o mesmo, SVN, eclipse, e tudo mais em utf… ate a turma do designer e montagem, usam UTF-8 nos dreamweaver e etcs…
B
bronx
Srs.,
No banco está td em ordem. Os caracteres já chegam bagunçados no servidor. E o request chega com o encoding devidamente preenchido (ISO-8859-1).
Entao, se o encoding chega certo, significa que os valores que estou passando estão num charset diferente. Mas já setei o charset correto nas JSPs, então, sinceramente, não sei o que fazer…=S
B
bronx
É alguma zica com o jQuery.
Fiz o submit do form normalmente, e os dados chegaram certos no server.
Na hora de fazer o post assíncrono, o jQuery não deve estar setando corretamente o valor do charset
Vou caçar algo e assim q achar eu posto aqui
L
Lavieri
bronx:
É alguma zica com o jQuery.
Fiz o submit do form normalmente, e os dados chegaram certos no server.
Na hora de fazer o post assíncrono, o jQuery não deve estar setando corretamente o valor do charset
Vou caçar algo e assim q achar eu posto aqui
quando o servidor responde via AJAX, no objeto JSONSerialization na implementação… o objeto pega o HttpServletResponse, e pega o getWrite(),
se quer alterar o encode forçadamente… vc pode pegar eesse arquivo extender, pegar o response, e setar o encode nele…
na requisição de entrada, como é o seu caso, pode ser que algo parecido esteja acontecendo… só vendo o caso mesmo… com debug, no passo a passo, ver a requisição sendo postada na Firebug, e seguindo os dados dentro do eclipse.,
B
bronx
Então, a requisição está chegando com o charset correto…=S
Como eu vejo essas informações no firebug?? Newbie total na parada
Você pode ver no FireBug clicando no icon do bizouro no seu FireFox (é preciso estar com o componente firebug instalado, se não tiver clique em Ferramentas > Complementos e procure pelo FireBug)
Ao clicar no bezouro, abre uma parte cheida de opções… escolha REDE … e então poste os dados… após postar tem várias informações do post… onde vc pode verificar os dados postados, e os cabeçalhos… vou exemplificar com esse post aqui.
Fora isso… é bom vc debugar a entrada dos dados no VRaptor, ver c eles chegam como ISO… imprima eles no console ou no LOG, e veja se como estão os dados…
pois o erro ainda pode ser na hora de salvar no banco, enfim… tem q ver com detalhes…
B
bronx
Saquei.
Vou verificar pelo firebug como a requisição está indo.
Mas, como disse, a requisição chega com o charset correto, mas os dados chegam bagunçados. Isso tudo antes de qualquer interação com o banco de dados. Eu usei um submit normal, e os dados foram enviados corretamente.
Depois posto o resultado.
J
jvds
bronx:
Saquei.
Vou verificar pelo firebug como a requisição está indo.
Mas, como disse, a requisição chega com o charset correto, mas os dados chegam bagunçados. Isso tudo antes de qualquer interação com o banco de dados. Eu usei um submit normal, e os dados foram enviados corretamente.
Depois posto o resultado.
Voce conseguiu resolver este poblema vi que parece ser pau mesmo jQuery ?
B
bronx
Cara, parece que o lance é com o XmlHttpRequest mesmo.
Não lembro ao certo, mas parece que toda requisição ajax vai sempre com o UTF-8.
Só me lembro que pra resolver eu simplesmente abandonei o ISO e agora só uso UTF-8.
Por questões de padronização, recomendo que faça o mesmo…rs
Abç
G
garcia-jj
Juro que em algum lugar eu lí que o ISO-8859-1 está em depreciated. Porém não sei se isso é verdade.
De qualquer forma usar UTF-8 por padrão em tudo evita essas dores de cabeça.
G
Guevara
Opa! Beleza pessoal?
Eu tive o mesmo problema, tenho até um tópico sobre isso. Resolvi deixando td em UTF-8, até no web.xml, e somente na página que faz o envio dos dados, como uma busca, setei assim a JSP: