溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php生成csv亂碼的解決方法

發(fā)布時間:2021-05-18 10:06:37 來源:億速云 閱讀:396 作者:小新 欄目:編程語言

這篇文章主要介紹了php生成csv亂碼的解決方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

php生成csv亂碼是因為輸出的csv格式文件沒有BOM,其解決辦法就是使用BOM標示字符編碼,代碼如“header("Content-type:text/csv;charset=gb2312");”。

本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦

解決PHP 輸出csv文件中文亂碼

PHP 下載文件常采用字節(jié)流輸出的方式。因此常用的下載csv格式代碼如下:

header("Content-Type: application/force-download"); 
header("Content-type:text/csv;charset=gb2312"); 
header("Content-Disposition:filename=打開郵件導出".date("YmdHis").".csv"); 
echo "收件人郵箱,收件人姓名,發(fā)送時間\r";
 ob_end_flush();
 foreach($list as $rs) { 
echo $rs->toemail.",".$rs->name.",".date('Y-m-d H:i:s',$rs->addtime)."\r"; flush();
 }
 exit;

這樣下載的csv文件使用記事本或者sublime text等編輯器打開是正常的,但是使用excel打開就會亂碼,原因是輸出的csv格式文件沒有BOM,BOM的說法很多,正常情況下,在PHP中是需要去除BOM的,不過csv文件需要使用BOM標示字符編碼。

解決方式如下:

header("Content-Type: application/force-download");
header("Content-type:text/csv;charset=gb2312");
header("Content-Disposition:filename=打開郵件導出".date("YmdHis").".csv");
echo chr(0xEF).chr(0xBB).chr(0xBF);
echo "收件人郵箱,收件人姓名,發(fā)送時間\r";
ob_end_flush();
foreach($list as $rs)
{
   echo $rs->toemail.",".$rs->name.",".date('Y-m-d H:i:s',$rs->addtime)."\r";
   flush();
}
exit;

由于Linux的換行符與window的差別。如果上述代碼在Linux服務(wù)器中有不好的反應,可將 "\r" 改為 "\r\n"。

php是什么語言

php,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運用。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“php生成csv亂碼的解決方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI