Ir para o conteúdo
pedrosorio

AJAX: overrideMimeType

Mensagens Recomendadas

pedrosorio    5
pedrosorio

Ora boas. Estou a utilizar AJAX para actualizar uma tabela dinamicamente (a partir de uma base de dados mySQL) aquando da alteração da opção seleccionada numa form select.

Isto funciona tudo muito bem, mas como tenho caracteres em iso-8859-1 tenho que lhe dizer para me ir buscar os dados com esse encoding:

xmlHttp.overrideMimeType("text/html; charset=iso-8859-1");

em que xmlHttp é um objecto de xmlHttp.

Isto em firefox's e coisas do género funciona muito bem, mas o objecto em ie não tem as mesmas propriedades logo não suporta overrideMimeType. Sendo assim, se não colocar esta linha para o ie, a tabela aparece-me cheia de pontos de interrogação.

A minha dúvida é: existe alguma função equivalente ao overrideMimeType que me permita colocar isto a funcionar no ie?

Obrigado.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

Eu tenho isso no head da minha página html principal. Onde é que deveria meter isso se tivesse acesso ao lado do servidor?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
skin    0
skin

tenta <script src="nomedoscript.js" charset="iso-8859-1"></script>

Podes é ter problemas de charset na base de dados... daí o output não sair como queres.

O meu conselho é:

HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="nomedoscript.js" charset="utf-8"></script>

JavaScript: xmlHttp.setRequestHeader("encoding", "utf-8");

MySQL: colocares tudo utf-8 general ci (salvo erro não tenho nenhuma instância aberta)

PHP: header('Content-Type: text/html; charset=utf-8');

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

Não te esqueças que está a funcionar perfeitamente em todos os outros browsers. Aliás, se eu me limitar a mostrar a tabela com mysql_queries a partir de php funciona limpinho em todos os browsers porque os encodings estão todos certos. Só dá problema no httpRequest a partir de js - no ie.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
skin    0
skin

Não te esqueças que está a funcionar perfeitamente em todos os outros browsers. Aliás, se eu me limitar a mostrar a tabela com mysql_queries a partir de php funciona limpinho em todos os browsers porque os encodings estão todos certos. Só dá problema no httpRequest a partir de js.

Ah, li o teu post um pouco na diagonal não tinha entendido isso :D.

Tentaste: <script src="nomedoscript.js" charset="iso-8859-1"></script> ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

Tentei e continua a não funcionar lol. Acho que o encoding do script está bem por definição. O problema é de certeza quando faz o request, que está a devolver "porcaria".

Nos outros browsers não dá problema porque o overrideMimeType("text/html; charset=iso-8859-1"); trata do assunto. Mas não consigo encontrar alternativa para o ie.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
esquima    0
esquima

xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

xmlHttp.setRequestHeader("encoding", "ISO-8859-1");

e com estes 2 juntos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade