首頁 >後端開發 >PHP問題 >php 匯出excel亂碼怎麼辦

php 匯出excel亂碼怎麼辦

藏色散人
藏色散人原創
2020-11-24 09:43:334255瀏覽

php導出excel亂碼的解決方案:1、設定PHP檔案編碼為UTF8,並指定header的編碼為UTF8;2、將資料庫編碼設定為UTF8;3、使用table來進行佈局。

php 匯出excel亂碼怎麼辦

推薦:《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的編碼為
  1. UTF-8 header("Content-type:application/vnd.ms-excel;charset=UTF-8");

    資料庫編碼設定為UTF-8
  2. 並使用table來進行佈局(在匯出文件之前新增BOM)

 

以上是php 匯出excel亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn