Friday, March 22, 2019

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




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


Answer



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().


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...