2014-07-20 31 views
5

tôi có vấn đề với các nhân vật tiếng Ả Rập khi tôi làm json_encode() nó luôn luôn quay trở lại ????, trong cơ sở dữ liệu tất cả các trường và cơ sở dữ liệu là utf8json_encode() không hiển thị ký tự arabic trong cách tốt

của tôi mã:

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

kết quả như sau:

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

hãy giúp tôi

+0

Bạn có chắc chắn dữ liệu thực sự được mã hóa trong UTF-8 không? – Gumbo

+0

@Gumbo vâng tôi chắc chắn .. –

+1

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

Trả lời

12

Hãy thử thứ là trước khi gửi câu hỏi của bạn

mysql_query("SET NAMES 'utf8'"); 

hay này (nếu PHP của bạn là 5.4.0 +)

json_encode($result, JSON_UNESCAPED_UNICODE); 

Lưu ý: Trong trường hợp đó dữ liệu của bạn được lưu trữ trong định dạng hex, kèm theo json_econde với mysql_escape_string()

Các vấn đề liên quan