json_encode caracteres especiais Ç e acentos retornam null
Alguém poderia me ajudar faço uma busca no meu banco de dados, e faço um json_encode para mandar para o front.
Mais as palavras que tem caracteres especiais Ç e acentos retornam null, não posso mudar a formatação do banco de dados.
Segue o código.
<?php
require_once "../includes/php/conectar_bd.php";
require_once "../validar_sessao.php";
header('Content-type: text/html; charset=UTF-8') ;
if ($conn->connect_errno) {
echo "Falha ao conectar: " . $db->connect_errno;
}
//if ($_REQUEST['usr_logado'] == "") return;
$mes_inicio = 1;//$_REQUEST['mes_inicio'];
$mes_fim =2;// $_REQUEST['mes_fim'];
$ano = 2019;// $_REQUEST['ano'];
$cod_nat_oper = '1,40,42,99,18,292,51,302,303';$_REQUEST['nat_operacao'];
if (is_array($cod_nat_oper)) $cod_nat_oper = implode(",",$cod_nat_oper);
//if (is_array($cod_nat_oper)) $cod_nat_oper = implode(",",$cod_nat_oper);
$Result_atendente = "SELECT
a.empresa
,a.cliente
,b.nom_cliente
,e.cod_uni_feder
,d.cod_repres
,f.den_tip_cli";
$meses_total = null;
for($mes = $mes_inicio; $mes <= $mes_fim; $mes++)
{
$Result_atendente .= ",SUM(CASE WHEN MONTH(dat_hor_emissao) = $mes THEN 1 ELSE 0 END) AS Qtd_mes$mes";
$meses_total[] = $mes;
}
$meses_total = implode($meses_total, ',');
$Result_atendente .= ",SUM(CASE WHEN MONTH(dat_hor_emissao) IN($meses_total) THEN 1 ELSE 0 END) AS total";
$Result_atendente .= " FROM
fat_nf_mestre a
join clientes b on (b.cod_cliente = a.cliente)
join fat_nf_item c on (c.empresa = a.empresa and c.trans_nota_fiscal = a.trans_nota_fiscal)
join pedidos d on (d.cod_empresa = c.empresa and d.num_pedido = c.pedido)
join cidades e on (e.cod_cidade = b.cod_cidade)
join tipo_cliente f on (f.cod_tip_cli = b.cod_tip_cli)
WHERE
a.empresa IN (10,30,50,51)
and YEAR(dat_hor_emissao) = $ano
and d.Cod_tip_carteira = '1'
and c.seq_item_nf = '1'
and a.sit_nota_fiscal <> 'C'
and a.natureza_operacao in (1,40,42,99,18,292,51,302,303)
GROUP BY
1,2,3,4,5,6
HAVING SUM(CASE WHEN MONTH(dat_hor_emissao) IN($meses_total) THEN 1 ELSE 0 END) > 0";
$resultado_atendente = $db->prepare($Result_atendente);
$resultado_atendente->execute();
$dado['rows'] = array();
while ($row_atendente = $resultado_atendente->fetch(PDO::FETCH_OBJ)) {array_push($dado['rows'], $row_atendente);}
//echo "<pre>";
//echo $dado['nom_cliente'];
//echo "</pre>";
echo json_encode($dado,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
?>
e sai assim.
{
empresa: "10",
cliente: "025368835000120",
nom_cliente: null,****************************Campo com carecteres especiais
cod_uni_feder: "MT",
cod_repres: "533",
den_tip_cli: "REVENDEDOR ",
qtd_mes1: "1",
qtd_mes2: "0",
total: "1"
},
Discussão (0)
Carregando comentários...