Capturando palavras acentuadas corretamente com Ajax e PHP

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>

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"]));
 
?>

Para exibir acentuação corretamente só precisamos fazer o tratamento dos dados no lado do servidor.
Curto e grosso!

Gostou dessa matéria?

Inscreva seu email para receber atualizações com as últimas publicações do nosso blog.
[jetpack_subscription_form show_subscribers_total="false" button_on_newline="false" custom_font_size="16px" custom_border_radius="0" custom_border_weight="1" custom_padding="15" custom_spacing="10" submit_button_classes="" email_field_classes="" show_only_email_and_button="true" success_message="Sucesso! Enviamos um e-mail para confirmar a sua assinatura. Encontre o e-mail agora e clique em 'Confirmar' para iniciar a inscrição."]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *