你指定的PHPExcel生成的是xls格式的文件。是一種電子表格格式,這種格式一般是用excel打開處理的。直接用文本方式顯示就是亂碼的。但為什么是直接輸出這些亂而不是下載呢?是因?yàn)槟銢]有給輸出指定頭信息告訴瀏覽器輸出的內(nèi)容不是直接顯示而是供下載的,瀏覽器所以瀏覽器也不懂,它只好老老實(shí)實(shí)給輸出來(lái)。你試著在上面那段代碼前加上如下內(nèi)容:
成都創(chuàng)新互聯(lián)是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)制作的專業(yè)的建站公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁(yè)設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來(lái)曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)近千家。
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");
php頁(yè)面加上mysql_query('set names utf8');最后是你數(shù)據(jù)庫(kù)的編碼,是什么你就寫什么,我這是utf8所以就寫的這個(gè),你要是gb2312就不能寫上面的了。必須前后保持一致,存的時(shí)候也得加上。
這個(gè)可能是你在安裝環(huán)境的時(shí)候出現(xiàn)了問(wèn)題,在安裝mysql的時(shí)候,數(shù)據(jù)庫(kù)默認(rèn)的不是gb2312,是西歐字符,建議你重新安裝數(shù)據(jù)庫(kù),或是使用wampsever集成安裝環(huán)境,默認(rèn)數(shù)據(jù)庫(kù)是utf8的,只要你建的數(shù)據(jù)庫(kù)整理為utf8
網(wǎng)頁(yè)文件也保存為utf8的
(不要bom頭的那種)以后寫php就很少出現(xiàn)問(wèn)題啦。要是在php文件的最上面一行再加上這么一句代碼,?php
header("Content-Type:text/html;
charset=utf-8");?,那出現(xiàn)問(wèn)題的幾率就更小了。