关于php:json_encode()不会以良好的方式显示阿拉伯字符

json_encode() doesn't display arabic characters in good way

本问题已经有最佳答案,请猛点这里访问。

当我执行json_encode()时,我对阿拉伯字符有问题,它总是返回吗?????,在数据库中,所有字段和数据库都是utf8

我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$query   = mysql_query("SELECT * FROM `Names`");

if (!$query) {
$message  = 'Invalid query: ' . mysql_error() ."
"
;
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);
}

结果如下:

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

请帮帮我


发送查询前请尝试此操作

1
mysql_query("SET NAMES 'utf8'");

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

1
json_encode($result, JSON_UNESCAPED_UNICODE);

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