php 到处excel 乱码,php 导出excel乱码怎么办
php導出excel亂碼的解決辦法:1、設置PHP文件編碼為UTF8,并指定header的編碼為UTF8;2、將數據庫編碼設置為UTF8;3、使用table來進行布局。
本教程操作環境: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");
數據庫編碼設置為UTF-8
并使用table來進行布局(在導出文檔之前添加BOM)
總結
以上是生活随笔為你收集整理的php 到处excel 乱码,php 导出excel乱码怎么办的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flask-Script扩展命令行man
- 下一篇: php 导出excel接口,PHP实现导