AJAX e Acentos

Surfando pelos blogs procurando um novo tópico para postar acabei caindo no blog do Gustavo Paes em um artigo que falava sobre problemas de acentos no AJAX. Vou aproveitar então e refletir sobre este assunto também.

AJAX nasceu para o UTF-8 disso não tenho dúvidas, mas o XML tem seu lado ISO-8859-1, embora eu já tenha enfrentado inúmeros problemas sobre este aspecto de codificação. Bem temos dois lados do problema com AJAX, acentos e transmissão de dados.

Recebendo dados em XML

Quando os dados são recebidos por uma transmissão AJAX a forma mais comum utilizada é o XML. Porém o XML por padrão utiliza a codificação UTF-8 e quando os dados são lidos pelo javascript a coisa fica confusa e acentos viram hieróglifos. Com o tempo achei uma solução que me atendeu e achei outras que muitos sugerem mas por algum motivo não funcionou comigo, como esta .

Minha solução entao foi a seguinte:

No arquivo que gera os dados, utilizo este cógido ```php $string = rawurlencode($dados);


No arquivo que recebe, dentro da função que interpreta os dados recebidos uso esta função para reverter: ```js
var string = unescape(dados);

Enviando dados por AJAX

Quando você envia dados via AJAX para um script que grava no banco de dados, você muito provavelmente terá problemas com acentos nos dados que guardará no banco. A sintonia perfeita de “collate” e Charset do banco, com o cliente, e o PHP é algo complicado e trabalhoso de se obter usando cabecalhos (headers), por isso achei outra solução, que não é a mais comoda, mas é simples e resolve sempre.

Faço o envio de dados de forma padrão sem mecher em nenhuma configuração de charset do javascript ou ajax, deixo todo o tratamento para o php, onde executo a seguinte função no array $_POST, de onde provem os dados que vou gravar.

< ? function ajaxPostFix (&$value){ $value = utf8\_decode($value); }

array\_walk($\_POST,'ajaxPostFix'); ?> 

Pronto. resolvido o problema, dados gravados corretamente.

Ok, estes são meu “2 centavos” sobre o assunto.

comments powered by Disqus

Related Posts

2007 e Férias!

2007 e Férias!

  • December 30, 2006

2006 esta no final, 2007 esta vindo. Muitos blogs fizeram previsões e refletiram sobre o ano que passou, mas eu não vou entrar muito nisso.

Read More
I Encontro|PHPSP e seu real significado

I Encontro|PHPSP e seu real significado

  • February 16, 2009

O primeiro encontro do PHPSP foi um sucesso! Não pela número massivo de presentes, perto de eventos como a PHPConf , 25 pessoas é um número pequeno, mas sob a perspectiva de que foram 25 onde só tinhamos espaço para 30, e que este foi um evento gratuito e por isso sem “compromisso”, o número de presentes foi sim incrível.

Read More
Semana de Updates na Comunidade PHP

Semana de Updates na Comunidade PHP

  • December 19, 2006

Os últimos dias tem apresentado uma grande movimentação na comunidade PHP, desde o core até os frameworks.

Read More