如果你的網(wǎng)頁是GB2312格式,數(shù)據(jù)庫字段類型也是GB2312的,插入數(shù)據(jù)的時(shí)候也set
廣安網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,廣安網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為廣安超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的廣安做網(wǎng)站的公司定做!
names
'gb2312'了的,那么set
names
'gb2312'之后獲取數(shù)據(jù)顯示肯定不會(huì)異常。
我估計(jì)你插入數(shù)據(jù)的時(shí)候沒有set
names
'gb2312',或者字段的
字符集
類型不正確。
你可以修改字段的字符集,重新set
names
'gb2312'之后插入數(shù)據(jù)再取出來顯示試試看。
你指定的PHPExcel生成的是xls格式的文件。是一種電子表格格式,這種格式一般是用excel打開處理的。直接用文本方式顯示就是亂碼的。但為什么是直接輸出這些亂而不是下載呢?是因?yàn)槟銢]有給輸出指定頭信息告訴瀏覽器輸出的內(nèi)容不是直接顯示而是供下載的,瀏覽器所以瀏覽器也不懂,它只好老老實(shí)實(shí)給輸出來。你試著在上面那段代碼前加上如下內(nèi)容:
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");
你的問題提的比較簡單,實(shí)際上呢,產(chǎn)生亂碼的原因有很多。
最主要的是數(shù)據(jù)庫的問題,在安裝環(huán)境的時(shí)候就要選好字符集,然后
在調(diào)用數(shù)據(jù)庫的時(shí)候使用相同的字符集。
這里有一個(gè)gb2312的數(shù)據(jù)庫鏈接函數(shù)。供參考
function
db_connect()
{
$result=new
mysqli('localhost','root','你的密碼','你的數(shù)據(jù)庫名');
$result-query("set
names
'gb2312'");//字符集
if(!$result)
return
false;
return
$result;
}