解決php excel reader導(dǎo)出excel中文亂碼的方法:1、如果不使用dump函數(shù),可以通過修改【_defaultEncoding】變量解決問題;2、如果使用dump函數(shù)導(dǎo)出excel,需要修改htmlentities函數(shù)解決。
10年的南開網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整南開建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“南開網(wǎng)站設(shè)計”,“南開網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
解決php excel reader導(dǎo)出excel中文亂碼的方法:
在下載完php excel reader2.21后,請解壓至你的PHP環(huán)境配置的運行目錄下,打開example.php,首先來看
1$data=new Spreadsheet_Excel_Reader("example.xls");
此語句是用來創(chuàng)建一個php導(dǎo)出excel的實例,在excel_reader2.php文件中我們可以找到此php excel reader類的構(gòu)造函數(shù)原型
Spreadsheet_Excel_Reader($file='',$store_extended_info=true,$outputEncoding='')
顧名思義,php excel reader導(dǎo)出excel文件內(nèi)容的編碼類型是通過$outputEncoding
參數(shù)來指定的,默認的php excel reader導(dǎo)出excel的編碼類型是通過變量_defaultEncoding
設(shè)定,默認為UTF-8,所以通常解決php excel reader導(dǎo)出excel中文亂碼有兩種方法。
php excel reader導(dǎo)出excel中文亂碼解決方法一:
1$data=new Spreadsheet_Excel_Reader("example.xls");
改為
1$data=new Spreadsheet_Excel_Reader("example.xls",true,"GB2312");
php excel reader導(dǎo)出excel中文亂碼解決方法二:
打開excel_reader2.php,找到
1var$_defaultEncoding="UTF-8";
修改為
1var$_defaultEncoding="GB2312";
即可解決php excel reader導(dǎo)出excel亂碼的問題。
那為什么通過上述教程修改后,如果在example.xls中添加中文后example.php仍然輸出亂碼呢?
這是因為其調(diào)用了php excel reader類中的dump
函數(shù),此函數(shù)是用來將導(dǎo)出的excel文件內(nèi)容以HTML的形式輸出,而問題恰恰是由于這個函數(shù)中htmlentities函數(shù)作怪,htmlentities函數(shù)是用來把字符轉(zhuǎn)換為HTML實體的,原型如下
htmlentities(string,quotestyle,character-set)
其默認的字符集為ISO-8859-1,所以當使用php excel reader的dump函數(shù)導(dǎo)出excel出現(xiàn)中文亂碼時,
解決方法一:
1$val=htmlentities($val);
修改為
1$val=htmlentities($val,ENT_COMPAT,"GB2312");
解決方法二:
1$val=htmlentities($val);
修改為
1$val=htmlspecialchars($val);
php excel reader導(dǎo)出excel中文亂碼解決方法總結(jié)
如果不使用dump函數(shù)導(dǎo)出excel,可以通過修改_defaultEncoding
變量或者通過new Spreadsheet_Excel_Reader(excel文件名,true,”GB2312″);解決導(dǎo)出excel亂碼問題,如果使用dump函數(shù)以HTML的方式導(dǎo)出excel,需要修改htmlentities函數(shù)解決導(dǎo)出excel亂碼問題。