quinta-feira, 22 de novembro de 2012

json_encode transforma string em "null"

Tinha um array $d em PHP assim:
Array ( [0] => xxx27343xxx [1] => MARIA XXX XXXX SILVA [2] => 1 [3] => xxxx2905xxx [4] => 2010-10-20 11:20:09.000000 [5] => 26123837869 [6] => José XXXX Rodrigues )

Quando fazia o json_encode desse array, em vez da string no [6], era apresentado "null". Isso porque "This function only works with UTF-8 encoded data". Aparentemente esses dados estavam em uma codificação diferente de UTF-8, daí o "é" de "José" causa esse erro.
A solução foi simples:

array_walk($d, 'u8');
function u8(&$v, $k)
{
    $v = utf8_encode($v);
}


E aí sim, pude fazer o json_encode sem problemas!

Nenhum comentário:

Postar um comentário