json_encode()不会以良好的方式显示阿拉伯字符[重复]

问题描述 投票:10回答:1

这个问题在这里已有答案:

我有阿拉伯字符的问题,当我做json_encode()它总是返回????,在数据库中所有字段和数据库是utf8

我的代码:

$query   = mysql_query("SELECT * FROM `Names`");

if (!$query) {
$message  = 'Invalid query: ' . mysql_error() . "\n";
die($message);
}else
{
    while ($row = mysql_fetch_assoc($query)) 
    {
     $result[] = array(
        'Mid' => $row['Mid'], 
        'Uid' => $row['Uid'], 
        'Cid' => $row['Cid'], 
        'Name' => $row['Name'],
        'city' => $row['city'],
        'status' => $row['status'],
        'Mobile' => $row['Mobile'],
        'Phone' => $row['Phone'],
        'Email' => $row['Email']);
    }
      header('Content-Type: application/json; charset=utf-8');
      echo json_encode($result);
}

结果如下:

[{"Mid":"17","Uid":"1","Cid":"8","Name":"???? ?? ??????? ?? ???","city":"?????",

请帮我

php json arabic
1个回答
21
投票

在发送查询之前尝试此操作

mysql_query("SET NAMES 'utf8'");

或者这个(如果您的PHP版本是5.4.0或更高版本)

json_encode($result, JSON_UNESCAPED_UNICODE);

注意:如果您的数据以十六进制格式存储,请将json_encodemysql_escape_string()括起来。

© www.soinside.com 2019 - 2024. All rights reserved.