php導出excel亂碼的解決方案:1、設定PHP檔案編碼為UTF8,並指定header的編碼為UTF8;2、將資料庫編碼設定為UTF8;3、使用table來進行佈局。
推薦:《PHP影片教學》
本教學操作環境:windows7系統、PHP5.6版,此方法適用於所有品牌電腦。
解決PHP使用CVS匯出Excel亂碼問題
在使用PHP產生CVS檔案後透過Excel開啟發現中文全部變成了亂碼,之前在我本地win08通過WPS正常的,但上傳到伺服器Linux在伺服器上測試出現了亂碼
一開始以後是Linux的問題但後來測試時發現是WPS的問題(猜測可以是WPS對編碼做了處理,伺服器上透過Excel打開也是亂碼的)
因為我的PHP檔案和資料庫裡的編碼都是UTF-8格式而且使用文字編輯器開啟的編碼也是UTF-8的
#PHP程式碼
##
匯出的CVS文件,使用文字編輯器開啟是沒有亂碼
#使用Excel開啟卻是亂碼
網路上很多人說將資料庫中的資料由UTF-8轉換成GBK或在header中指定編碼,這兩種方式都嘗試過但仍然沒有用$html .= iconv("UTF-8","GBK",$row[$key]).$tab; header("Content-type: text/html; charset=utf-8")於是在這篇文章中發現只要在匯出文件之前加入BOM之後就解決了: PHP 匯出CSV 檔案用Excel 開啟出現中文亂碼(https:// xinpure.com/php-export-csv-file-opened-by-excel-appear-garbled/)
但由於BOM後每一行的單元格就合併成一個了(\t)但使用Table來解決換行問題,但意外的發現使用Table後就解決了亂碼問題(不需要BOM)
#解決方案:##PHP檔案編碼為UTF-8,並指定header的編碼為UTF-8 header("Content-type:application/vnd.ms-excel;charset=UTF-8");
以上是php 匯出excel亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!