我有一个存储阿拉伯语的mysql数据库,它在阿拉伯语字符和检索内容方面都很好,我收到的探测器是当我从数据库中检索这个阿拉伯语内容并想在另一个中使用查询它不起作用:
//Database Connection
mysql_query("SET CHARACTER SET utf8");
$sql = mysql_query("SELECT * FROM `categories` WHERE 1");
while($row1 = mysql_fetch_array($sql))
{
$category = $row1['label_id']; //Arabic Content is retrieved displayed correctly
$query1 = mysql_query("SELECT * FROM `user_list` WHERE `Category` = '" .$category . "' ORDER BY `private_number` DESC");
$query1 = mysql_query("SET CHARACTER SET utf8");
while($row = mysql_fetch_array($query1))
{
//returns zero rows
}
}
但是当我复制上面的字符串echo并且没有连接查询时它确实很有效 例如:
$query1 = mysql_query("SELECT * FROM `user_list` WHERE `Category` = 'الأفراد' ORDER BY `private_number` DESC");
我的php代码有什么问题,我该怎么做才能改变它
答案 0 :(得分:0)
确保Database和Tables Collation都设置为utf8_general_ci。如果没有,请在备份数据库后使用工具like this转换排序规则。
文件的编码也应该是UTF-8。
另外,检查Meta标签内容类型是否设置为utf-8:
对于HTML5,我是<meta charset="utf-8">
XHTML <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
。