Existem várias maneiras de resolver - ou pelo menos tentar - o problema de acentuação no AJAX. Eis algumas:
- Na função em PHP que é realizada a ação, o retorno deve ser dado por
print(urlencode($campo["ds_texto"]));
Isso irá codificar o resultado que vem da pesquisa SQL. Na função AJAX, após a variáveltexto
ter recebido a respostaresponseText
, colocar:texto=texto.replace(/\+/g," ");
texto=unescape(texto);
Isso descodificará o texto. - A segunda forma é colocar na função em PHP que é realizada a ação, o seguinte item:
header("Content-Type: text/html; charset=ISO-8859-1",true);
Isso fará com que a codificação seja definida comoISO-8859-1
. - Outra forma não tão segura é colocar
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
na página onde será exibido o resultado. - Outra forma é alterar a configuração do arquivo
httpd.conf
do Apache. Isso fica para outra hora!
Se Murphy ajudar é capaz que tudo isso funcione. Talvez nenhum funcione, talvez funcione parcialmente. Firefox e Internet Explorer nunca se deram muito bem, há algumas desavenças! :D
A solução que funcionou pra mim foi a 2. Inseri apenas o
header
na chamada PHP e deu certo, tanto pro Firefox quanto no Internet Explorer e Opera.Tem que ficar atento quanto ao cache. Geralmente se altera uma chamada ou função e ela não reflete em solução. Reiniciar o computador, dasabilitar o cache pelas páginas ou limpar o cache de vez em quando ajuda!
0 comentários:
Postar um comentário