本人是个初学数据库编程的新手,在面对数据库字符集与php之间的交互问题上一直都有点不解。比如一个最简单的案例。
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=gb2312'/>
</head>
(PHP的链接 查询 遍历因为太多,省略,写下部分重要的环节)
<?php
//数据库返回的结果集,我发送了条 mysql_query('set names latin1',$link),$res 为返回的查询resource
$r=mysql_fetch_row($res);
var_dump($r);//显示了一个行的结果,里面有中文,能正常显示。
?>
</html>
我的问题是,既然我之前设定了“set names latin1”,为什么在head部分,charset=latin1就显示错误,而变成了gb2312就能显示正确。而且,如果我把headb部分charset=utf-8,创建连接数据库之后发送"set names utf8",不仅一个中文字符无法显示,而且无论怎么更改编码显示,都无法成功。