我有一个脚本,该脚本从数据库获取数据并将其编码为json。 它在PHP 5.6中正常工作
$datos_nbr=$stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($datos_nbr, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_UNESCAPED_UNICODE );
切换到PHP 7后,如果字符串包含特殊字符(如á,é,ñ),则在字段中显示“ null”。它可以与其他字符串一起很好地工作。
没有特殊字符-> [{“ idpersona”:1372,“ nombre”:“ LANCIO JORGE”}]
带有特殊字符-> [{“ idpersona”:101860,“ nombre”:null}]
在json_encode显示数据存在之前放入print_r 数组 ( [0] =>数组 ( [idpersona] => 101860 [nombre] =>CABA�AGUADAA )
)
我尝试过
echo json_encode(array_map('utf8_encode',$datos_nbr));
和
$datos_nbr= array_map('htmlentities', $datos_nbr);
echo (html_entity_decode(json_encode($datos_nbr)));
是否添加JSON_PARTIAL_OUTPUT_ON_ERROR和JSON_UNESCAPED_UNICODE
使用array_map我只能得到[null]作为答案。