json_encode()不能很好地显示阿拉伯字符 [英] json_encode() doesn't display arabic characters in good way
本文介绍了json_encode()不能很好地显示阿拉伯字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在执行json_encode()时遇到阿拉伯字符问题,它总是返回????,在数据库中所有字段和数据库都是utf8
i have problem with Arabic characters when i do json_encode() it always return ????, in the database all the fields and database is utf8
我的代码:
$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);
}
结果如下:
[{"Mid":"17","Uid":"1","Cid":"8","Name":"???? ?? ??????? ?? ???","city":"?????",
请帮助我
推荐答案
在发送查询之前尝试一下
Try this before sending your query
mysql_query("SET NAMES 'utf8'");
或这个(如果您的PHP版本是5.4.0或更高版本)
or this (if your PHP version is 5.4.0 or above)
json_encode($result, JSON_UNESCAPED_UNICODE);
注意:如果您的数据以十六进制格式存储,请在json_encode
后面加上mysql_escape_string()
.
Note: In case that your data are stored in hex format, enclose json_encode
with mysql_escape_string()
.
这篇关于json_encode()不能很好地显示阿拉伯字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文