sexta-feira, 8 de abril de 2011

Função para encodar texto em UTF-8 recursivamente

Se você está encontrando problemas em obter dados do mysql para retornar um JSON, onde a função json_encode não pega todas as colunas da tabela, provavelmente deve ser o charset.

Achei uma função para encodar texto em UTF-8 recursivamente:

function utf8_encode_all($dat) {
if (is_string($dat)) return utf8_encode(nl2br($dat));
if (!is_array($dat)) return nl2br($dat);
$ret = array();
foreach($dat as $i=>$d) $ret[$i] = utf8_encode_all($d);
return $ret;
}


Agora para retornar o seu JSON faça algo do tipo:

...

while($row = mysql_fetch_array($resource)) {
$data[] = $row;
}

...

json_encode(utf8_encode_all($data));

...



Espero que gostem!
[]'s

Nenhum comentário: