首页 > 解决方案 > 已解决:当 MySQL 数据包含重音符号时,PHP json_encode 返回 BLANK

问题描述

抱歉,如果之前有人问过这个问题,但我找不到解决方案。当数据包含重音并且我没有收到错误时,我的 PHP 脚本返回空白。请问这个怎么解决?

我的排序是ut8_general_ci. 服务器使用 PHP 7。

这是代码:

    include ("connectDB.php");
    $q = "select id, nom from atelier WHERE session = '2'";
    $sql = $mysqli->query($q);
    $data = array();
    while($row = mysqli_fetch_array($sql, true)){
        $data[] = $row;
    };
    header('Content-Type: application/json');
    echo json_encode($data);

这是表的结构: 在此处输入图像描述

编辑:这是工作代码

<?php
include ("connectDB.php");
mysqli_set_charset($mysqli,'utf8');
$q = "select id, nom from atelier WHERE session = '3' ORDER BY nom";
$sql = $mysqli->query($q);
$data = array();
while($row = mysqli_fetch_array($sql, true)){

    $data[] = $row;

    //echo json_last_error();  // returns 5 ?
};
header('Content-Type: application/json');
echo json_encode($data,JSON_UNESCAPED_UNICODE);
?>

标签: phpmysqljsonmysqli

解决方案


推荐阅读