Problemas com encoding no JavaScript

3 respostas
davidbuzatto

Olá pessoal!

Estou desenvolvendo um projeto (na verdade migrando um cliente feito em delphi) para Java. Não estou usando nenhum framework, apenas jsp e servlets.

A aplicação é de avaliação institucional e funciona da seguine forma:

Um usuário x, recebe uma senha relacionada ao curso dele.
Ele insere essa senha no sistema e esta é passada p/ um servlet que valida a senha e obtém todas as perguntas relacionadas a senha informada.
O usuário é direcionado ao uma página, que por sua vez, usa um arquivo de javascript um pouco grande, que obtém via url, um arquivo xml que é gerado por outro servlet.

Até aí tudo bem, o Javascript entende o xml sem erros, coloca os acentos tudo bonitinho. Nesse mesmo javascript, é gerado um formulário em tempo de execução que envia as respostas dadas pelos usuários. É ai que começam a surgir os problemas.

O javascript gera novamente o xml agora com uma tag a mais, a de resposta, mas TODAS as strings, mesmo as que ele exibiu corretamente, são direcionadas novamente com os acentos todos errados.

Todos os jsp's estão com o encoding ISO-8859-1, bem como todos os formulários, o meta de cada jsp, e os xmls são gerados com o mesmo encoding.

O que será que está acontecendo? Tem alguma forma de dentro do arquivo de scripts eu informar que o mesmo é ISO-8859-1?

Para ligar o arquivo de scripts no jsp eu faço:
<script type="text/javascript" src="javascript/script.js" charset="ISO-8859-1"></script>

Mesmo assim não funciona.

Alguma sugestão?

Obrigado!

Edit: Era para eu ter postado no desenvolvimento web, se algum moderador puder transferir para lá eu agradeço.

3 Respostas

Y

Cara, já que você está gerando esse XML no JavaScript, faz com que todas as respostas passem pela função escape() do JS, dessa forma, não haverá acentos. Então, no servidor, você desfaz isso.

P.S.: só não lembro qual é a função que desfaz codificação no Java.

timotta

No servidor não precisa desfazer

davidbuzatto

Dei uma desencanada do problema e resolvi em 10 minutos :smiley:

Não sei porque o Javascript de uma hora para outra estava mudando o encoding, tudo estava em ISO, mas hora ele travalhava com UTF-8 e hora com ISO…

Deixamos as páginas todas em ISO, mas o xml foi parseado para ser codificado em UTF, ai funcionou…

Deve ser algum erro que está escondido, mas agora está funcionando.

Criado 23 de maio de 2007
Ultima resposta 24 de mai. de 2007
Respostas 3
Participantes 3