我有一个PHP Web服务,我在其中从mysql数据库中检索数据。在数据库中,数据以Marathi语言存储,但是当我在邮递员中运行我的Web服务时,数据即将到来,但会显示许多问号符号。如何解决这个问题?下面是我的PHP Web服务代码:
<?php
//include config_db.php
include_once('config_db.php');
$qr = "SELECT * FROM `recipe_breakfast`";
$qrResult = mysqli_query($db, $qr);
$count = mysqli_num_rows($qrResult);
if($count > 0)
{
while($data = mysqli_fetch_assoc($qrResult))
{
$result[] = $data;
}
$response = array('msg' => 'Success','details' => $result);
}
else
{
$response = array('msg' => 'No details found');
}
@mysqli_close($db);
/* Output header */
header('Content-type: application/json');
echo json_encode($response);
?>
答案 0 :(得分:1)
你有一个字符集问题。
在您的代码中,在此行之后:
include_once('config_db.php');
添加:
mysqli_query($db, 'set names utf8mb4');
如果您的数据库不支持utf8mb4
,请改用:
mysqli_query($db, 'set names utf8');
这应该可以解决问题。
如果没有,您的表中也会出现问题。
解决方案是将每个varchar
或text
列的排序规则设置为
utf8mb4_general_ci
。
这意味着您必须重做数据条目。