Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ATENÇÃO: Após estudar algumas coisas novas e ver alguns conselhos, ví que este tutorial está desatualizado e com algumas inverdades. Me discurpe hehe :(
Ae... pesquisei um pouco e desenvolvi a solução final pra esse problema de acento, acentuação, caracteres especiais, codificação, etc no Ajax.
Postei uma explicação um pouco mais completa dessa solução de acentuação no ajax lá no meu blog pra quem se interessar.
Atenção: Esta solução aqui é apenas no momento de receber os dados pelo javascript/ajax. Para capturar corretamente valores enviados por GET ou POST no PHP, dêem uma conferida nesta postagem do JulioGreff.
Já que o xmlhttprequest trabalha no padrão com o UTF-8, nós temos que informar ao nosso servidor que deve mandar o charset ISO-8859-1 pro browser, e não o UTF-8. O problema é que nunca havia conseguido fazer funcionar. Antes eu tentava fazer com a tag meta, nao dava certo.
Já ví vários esquemas viagens usando encode, escape, uri, utf_encode, etc...
Mas há uma forma simples de falar pro ajax receber o texto no formato nosso (iso-8859-1): é só alterar o servidor para que sirva o ISO-8859-1 por padrãoOU setar o cabeçalho via linguagem dinamica.
Pra fazer isso você usa, no início do seu código:
ASP:
<% Response.Charset="ISO-8859-1" %>PHP:
<?php header("Content-Type: text/html; charset=ISO-8859-1",true) ?>JSP:
<%@ page contentType="text/html; charset=ISO-8859-1" %>Testado com sucesso no IE6 e FF1.5, quem puder testar em outros browsers, ou colocar seu testemunho aqui dizendo se funcionou ou não...
<editado>Lembrando que, se voce tiver acesso às configurações do servidor, voce poderá configurá-lo para servir ISO-8859-1 por padrão</editado>
PS.: Ah, e se alguém se interessar por uma função super simples e funcional pra ajax, dá uma testada na função simples pra ajax e múltiplos carregamentos que eu fiz... Testem lá e comentem.
PS2.: Se voce quer carregar um arquivo xml ou html simples que não usa linguagem server side, talvez voce consiga resolver o problema da acentuação usando só o a tag meta, mas se não conseguir você pode usar o responseXML ao invés do responseText pois, de acordo com a mozilla.org, o responseXML interpreta corretamente outros caracteres e não apenas o UTF-8.
PS3.: O problema também pode estar sendo causado por banco de dados. Se for isto, leia este post aqui mesmo nesta página: http://forum.imasters.com.br/index.php?s=&...st&p=572863
Carregando comentários...