Maison >développement back-end >tutoriel php > 界面显示出现乱码,该怎么解决
界面显示出现乱码
我的查询语句是:
mysql_query("SET NAMES UTF8");
//如果数组的元素个数为1个,则按单个条件进行查询
if(count($newstr)==1){
$sql = "select * from commodity where commodity_name like '%".$newstr[0]."%' or Sale_Address like '%".$newstr[0]."%'order by id desc ";
}
else{
//合并查询结果集
for($i=0;$i
}
for($j=0;$j
}
$sql1=substr($sql1,0,-3); //去掉最后一个“or”
$sql="select * from commodity where".$sql0.$sql1." order by id desc";
}
require_once("common/db_mysql.class.php");
$DB= new DB_MySQL;
//得到总记录数
$DB->query($sql);
$row_count_sum = $DB->get_rows();//返回结果集中记录的行数
//每页记录数,可以使用默认值或者直接指定值
$row_per_page = 6;
//总页数
$page_count = ceil($row_count_sum/$row_per_page);
//判断是否为第一页或者最后一页
$is_first = (1 == $page_num) ? 1 : 0;
$is_last = ($page_num == $page_count) ? 1 : 0;
//查询起始行位置
$start_row = ($page_num-1) * $row_per_page;
//为SQL语句添加limit子句
$sql .= " limit $start_row,$row_per_page";
//执行查询
$DB->query($sql);
$res = $DB->get_rows_array();//返回结果集记录组成的数组
//结果集行数
$rows_count=count($res);
for($i=0;$i $id=$res[$i]['id']; //ID号
$title=$res[$i]['commodity_name']; //标题
$content = $res[$i]['Sale_Address']; //内容
echo $id.$title."**".$content."&&";
}
当我运行正常时结果是:62凤飞飞**多大&&61ssssss**ssss&&60哈哈哈**反反复复&&59嗯嗯嗯**嗯嗯嗯&&
但是偶尔会出现异常结果:62???**??&&61ssssss**ssss&&60???**????&&59???**???&&
我尝试着改浏览器的兼容性,有时候能恢复正常,有时候怎么改都没用,请问这是什么情况?在代码中能处理这种情况么
(以上代码有两个自定义函数,如果大家觉得有必要我再贴出来) 谢谢大家帮忙
------解决方案--------------------
#PHP页面开头加上 header("content-type:text/html;charset:utf-8"); <br><font color="#e78608">------解决方案--------------------</font><br>数据库是什么编码? php文件又是什么编码? 统一后一般都没有问题. <br><font color="#e78608">------解决方案--------------------</font><br>还有一个可能,你的编辑器有问题!你是不是从原来gb2312改成utf-8的<br> <br><font color="#e78608">------解决方案--------------------</font><br>我有遇到过的,导出来,导进去(另外的框架),全是??????之类的,如果是自己重新添加,那么就全是正常的 <div class="clear"> </div>