|
本帖最后由 trynews 于 2011-8-31 12:00 编辑
1、CI2.0.2版
2、PHP5.2.6
3、Mysql5.0.33
4、文件编码、数据库编码、连接数据库编码均是utf-8
5、其它存取数据均正常,唯一的问题是以中文数据条件查询数据时有问题,且奇个数中文即出现乱码,偶个数中文正常
6、取数据用Active Record 类
例:
当使用
$this->db->where('roomname','标准房');
查询记录时
打印生成的sql是: `roomname` = '标准��\�'
当是
$this->db->where('roomname','标准房房');
打印生成的sql是: `roomname` = '标准房房'
一切正常
当是奇个数中文是就会出乱码。
我跟踪了一下代码,查到mysql_driver.php里调用了mysql_real_escape_string()函数
echo $str;//这里正常,显示"标准房"
$str = mysql_real_escape_string($str, $this->conn_id);//$str=标准房
echo $str;//转换后出现乱码,显示"标准��\�"
如果改成$str = mysql_escape_string($str, $this->conn_id);就正常,有谁帮我找出是什么问题??
|
|