1

我在 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)");

提前致谢!

4

1 回答 1

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 编码,您可以在此处找到更多信息。

于 2012-06-30T22:17:46.597 回答