如果你的网页是GB2312格式,数据库字段类型也是GB2312的,插入数据的时候也set
广安网站建设公司创新互联建站,广安网站设计制作,有大型网站制作公司丰富经验。已为广安超过千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的广安做网站的公司定做!
names
'gb2312'了的,那么set
names
'gb2312'之后获取数据显示肯定不会异常。
我估计你插入数据的时候没有set
names
'gb2312',或者字段的
字符集
类型不正确。
你可以修改字段的字符集,重新set
names
'gb2312'之后插入数据再取出来显示试试看。
你指定的PHPExcel生成的是xls格式的文件。是一种电子表格格式,这种格式一般是用excel打开处理的。直接用文本方式显示就是乱码的。但为什么是直接输出这些乱而不是下载呢?是因为你没有给输出指定头信息告诉浏览器输出的内容不是直接显示而是供下载的,浏览器所以浏览器也不懂,它只好老老实实给输出来。你试着在上面那段代码前加上如下内容:
header("Cache-Control: public");
header("Pragma: public");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type:application/download");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=你自己指定或生成文件名.xls");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
你的问题提的比较简单,实际上呢,产生乱码的原因有很多。
最主要的是数据库的问题,在安装环境的时候就要选好字符集,然后
在调用数据库的时候使用相同的字符集。
这里有一个gb2312的数据库链接函数。供参考
function
db_connect()
{
$result=new
mysqli('localhost','root','你的密码','你的数据库名');
$result-query("set
names
'gb2312'");//字符集
if(!$result)
return
false;
return
$result;
}