php 到处excel 乱码,php 导出excel乱码怎么办
php導(dǎo)出excel亂碼的解決辦法:1、設(shè)置PHP文件編碼為UTF8,并指定header的編碼為UTF8;2、將數(shù)據(jù)庫(kù)編碼設(shè)置為UTF8;3、使用table來(lái)進(jìn)行布局。
本教程操作環(huán)境:windows7系統(tǒng)、PHP5.6版,該方法適用于所有品牌電腦。
解決PHP使用CVS導(dǎo)出Excel亂碼問(wèn)題
在使用PHP生成CVS文件后通過(guò)Excel打開(kāi)發(fā)現(xiàn)中文全部變成了亂碼,之前在我本地win08通過(guò)WPS正常的,但上傳到服務(wù)器Linux在服務(wù)器上測(cè)試出現(xiàn)了亂碼
一開(kāi)始以后是Linux的問(wèn)題但后來(lái)測(cè)試時(shí)發(fā)現(xiàn)是WPS的問(wèn)題(猜測(cè)可以是WPS對(duì)編碼做了處理,服務(wù)器上通過(guò)Excel打開(kāi)也是亂碼的)
因?yàn)槲业腜HP文件和數(shù)據(jù)庫(kù)里的編碼都是UTF-8格式而且使用文本編輯器打開(kāi)的編碼也是UTF-8的
PHP代碼
導(dǎo)出的CVS文檔,使用文本編輯器打開(kāi)是沒(méi)有亂碼
使用Excel打開(kāi)卻是亂碼
網(wǎng)上很多人說(shuō)將數(shù)據(jù)庫(kù)中的數(shù)據(jù)由UTF-8轉(zhuǎn)換成GBK或者在header中指定編碼,這兩種方式都嘗試過(guò)但仍然沒(méi)有用
$html .= iconv("UTF-8","GBK",$row[$key]).$tab;
header("Content-type: text/html; charset=utf-8")
于是在這篇文章中發(fā)現(xiàn)只要在導(dǎo)出文檔之前添加BOM之后就解決了: PHP 導(dǎo)出 CSV 文件用 Excel 打開(kāi)出現(xiàn)中文亂碼(https://xinpure.com/php-export-csv-file-opened-by-excel-appear-garbled/)
但由于BOM后每一行的單元格就合并成一個(gè)了(\t)但使用Table來(lái)解決換行問(wèn)題,但意外的發(fā)現(xiàn)使用Table后就解決了亂碼問(wèn)題(不需要BOM)
解決辦法:PHP文件編碼為UTF-8,并指定header的編碼為
UTF-8 header("Content-type:application/vnd.ms-excel;charset=UTF-8");
數(shù)據(jù)庫(kù)編碼設(shè)置為UTF-8
并使用table來(lái)進(jìn)行布局(在導(dǎo)出文檔之前添加BOM)
總結(jié)
以上是生活随笔為你收集整理的php 到处excel 乱码,php 导出excel乱码怎么办的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Flask-Script扩展命令行man
- 下一篇: php 导出excel接口,PHP实现导