我在MySQL 5.0中有一个表,我用波斯语将城市名称放入其中并使用页面尝试读取特定的城市名称! 它曾经是字,但从今天起,我的页面中的城市名称都是“?????”喜欢! 我转到phpMyAdmin,将所有整理设置更改为“utf_persian_ci”,没有任何反应! 其中有趣的部分是phpMyAdmin的“浏览”选项显示一切正常(所有城市名称都没问题!)但是当我尝试从页面中使用这种查询时,事情发生了:
$result = dbquery("SELECT * FROM ".DB_CITIES." WHERE cty_company_id = ".$_GET['cmp']." AND EXISTS (SELECT cu_cmp_id FROM ".DB_COMPANY_USERS." WHERE cu_cmp_id = ".$_GET['cmp']." AND cu_usr_id = $user_id) AND EXISTS (SELECT ctus_user_id FROM scada_city_users WHERE ctus_user_id = $user_id AND ctus_city_id = cty_id)");
提前致谢!
答案 0 :(得分:2)
有一种简单的方法告诉数据库它应该提供UTF-8编码的字符串。只需告诉您的连接对象,您期望的字符集,数据库将为您完成其余的工作。
$db = new mysqli($dbHost, $dbUser, $dbPw, $dbName);
// tell the db to deliver UTF-8 encoded strings.
$db->set_charset("utf8");
排序规则仅定义应如何比较两个条目,它与定义字符集不同。您的HTML页面也应该是UTF-8编码的,您可以在此处找到更多信息here。