Por padrão todas requisições enviadas via Ajax são transmitidas na codificação UTF-8, isso pode gerar algumas problemas com strings que contenham palavras acentuadas (charset=iso-8859-1).
Isso acontece, por exemplo, quando queremos pegar os dados de um formulário preenchido pelo usuário e enviar para o servidor:
<script language="javascript"> $("#enviacontato").submit(function() { var name = $('#name').val(); var email = $('#email').val(); $.post("recebedados.php", {name: name, email: email, message: message }, function(data) { alert(data); }); return false; });</script> |
<script language="javascript"> $("#enviacontato").submit(function() { var name = $('#name').val(); var email = $('#email').val(); $.post("recebedados.php", {name: name, email: email, message: message }, function(data) { alert(data); }); return false; });</script>
Esse é um problema velho, existem dezenas de gambiarras que o pessoal comenta na Internet e que não funcionam ou são bastante complicadas…
Vejam uma solução prática, simples e funcional:
<?php echo htmlentities(utf8_decode($_POST["message"])); ?> |
<?php echo htmlentities(utf8_decode($_POST["message"])); ?>
Para exibir acentuação corretamente só precisamos fazer o tratamento dos dados no lado do servidor.
Curto e grosso!