16

i have problem with Arabic characters when i do json_encode() it always return ????, in the database all the fields and database is utf8

my code:

$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);
}

the result look like:

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

please help me

Sideeq Youssef
  • 903
  • 2
  • 10
  • 24

1 Answers1

40

Try this before sending your query

mysql_query("SET NAMES 'utf8'");

or this (if your PHP version is 5.4.0 or above)

json_encode($result, JSON_UNESCAPED_UNICODE);

Note: In case that your data are stored in hex format, enclose json_encode with mysql_escape_string().

Riyaz
  • 139
  • 11
hex494D49
  • 9,109
  • 3
  • 38
  • 47