更改为PHP7后,JSON_UNESCAPED_UNICODE不起作用

时间:2019-07-19 19:12:01

标签: php json php-7

我有一个脚本,该脚本从数据库获取数据并将其编码为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]作为答案。

0 个答案:

没有答案