- 论坛徽章:
- 0
|
最近搞个开发,准备用php5.02+mysql4.1.X来作这个项目,因为没有用过utf8,所以这次准备把整个代码都用utf8来做,遇见一个没有想明白的问题,想清高手指点一下。
已经将mysql4.1的所有charset都设置为utf8,如下所示:
character set client utf8
character set connection utf8
character set database utf8
character set results utf8
character set server utf8
character set system utf8
collation connection utf8_unicode_ci
(全局值) utf8_general_ci
collation database utf8_general_ci
collation server utf8_general_ci
数据库里的数据也全部iconv成utf8数据,如下所示:
first_db 浏览 结构 搜索 插入 清空 删除 2 MyISAM utf8_general_ci 2.1 KB -
按照我的理解,用php将数据从mysql中查询出来后,就无需再做编码转换就可以正常显示了,也就是说,使用:
$link=@mysql_pconnect($dbhost,$dbuser,$dbpw) or exit();
mysql_select_db($dbname) or exit();
$resource=mysql_query("select * from first_db");
while ($row=mysql_fetch_array($resource))
{
$id=$row['id'];
$name=$row['name'];
echo $id.$name."<br>";
}
应该可以正常显示中文,可是查询出来的结果居然全部都是???。
只有在query前加入:
mysql_query("set names 'utf8'");
才可以正常显示中文,这是说明原因??请指点。
可以确定mysql和数据库中的内容已经全部都是utf8的了。 |
|