Mostrando postagens com marcador ajax. Mostrar todas as postagens
Mostrando postagens com marcador ajax. Mostrar todas as postagens
sábado, 31 de maio de 2008

Acentuação no AJAX

Existem várias maneiras de resolver - ou pelo menos tentar - o problema de acentuação no AJAX. Eis algumas:

  1. 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ável texto ter recebido a resposta responseText, colocar:
    texto=texto.replace(/\+/g," ");
    texto=unescape(texto);

    Isso descodificará o texto.

  2. 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 como ISO-8859-1.

  3. 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.

  4. 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!