2014-07-20 6 views
5

mam problem ze znakami arabskimi kiedy robię json_encode() zawsze zwraca ????, w bazie danych wszystkie pola i bazy danych jest utf8json_encode() nie wyświetla znaki arabskie w dobry sposób

mój Kod:

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

wynik wyglądać następująco:

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

pomóż mi

+0

Czy jesteś pewien, że dane są faktycznie zakodowane w UTF-8? – Gumbo

+0

@Gumbo tak jestem pewien .. –

+1

http://stackoverflow.com/questions/11706846/unable-to-store-arabic-in-mysql-database-using-php – MH2K9

Odpowiedz

12

Spróbuj th jest przed wysłaniem zapytanie

mysql_query("SET NAMES 'utf8'"); 

czy to (jeśli PHP 5.4.0 +)

json_encode($result, JSON_UNESCAPED_UNICODE); 

Uwaga: W przypadku, gdy dane są przechowywane w formacie szesnastkowym, należy ująć json_econde z mysql_escape_string()