php導出csv亂碼
❶ php導入csv文件輸出是亂碼,怎麼解決
//這是我前幾天回答過的一個問題下面以讀取淘寶csv文件為例
if($result){//如果上傳成功了,這是文件路徑
if(!($handle=fopen_utf8($result,"r"))===FALSE){//調取下邊函數fopen_utf8;
$errorArr=array();
$i=0;
while(($cols=fgetcsv($handle,1000," "))!==FALSE){
++$i;
if($i<4)continue;
$taobaolmsx=$cols[21];//寶貝屬性;
$taobaoxxsx=$cols[30];//銷售屬性;
$goodsBn=$cols[33];//商家編碼;
}
fclose($handle);
}
unlink($result);
}else{
echo'fileuploaderror';exit;
}
/*讀取csv文件用*/
functionfopen_utf8($filename){
$encoding='';
$handle=fopen($filename,'r');
$bom=fread($handle,2);
rewind($handle);
if($bom===chr(0xff).chr(0xfe)||$bom===chr(0xfe).chr(0xff)){
//UTF16ByteOrderMarkpresent
$encoding='UTF-16';
}else{
$file_sample=fread($handle,1000)+'e';//readfirst1000bytes
//+eisaworkaroundformb_stringbug
rewind($handle);
$encoding=mb_detect_encoding($file_sample,'UTF-8,UTF-7,ASCII,EUC-JP,SJIS,eucJP-win,SJIS-win,JIS,ISO-2022-JP');
}
if($encoding){
stream_filter_append($handle,'convert.iconv.'.$encoding.'/UTF-8');
}
return($handle);
}
❷ PHP導出CSV文件中的繁體中文在英文XP下亂碼(英文XP中語言已設置)
這個問題應該是你生成csv文件時,字元編碼轉換導致的, 因為你從數據提取的是gbk的, csv文件可能不支持gbk編碼
英文系統下的字體可能不存在, 你用什麼查看這個文件的,設置文件查看器的編碼
❸ php excel表格導出亂碼問題應該怎麼解決呢
記錄一下自己的做法.
將php腳本文件的編碼用notepad++修改為ANSI(windows下的編碼格式)
資料庫查詢時先使用mysqli查詢set names utf8
接著iconv函數將編碼由utf8轉換為gbk.excel文件導出中文則不會亂碼
❹ php讀取csv文件怎麼是亂碼
出現亂碼解決辦法:
csv格式不是utf的,所以在讀取和寫入mysql的時候就會出現亂碼,用iconv函數轉換下即可。
$Name=iconv('gb2312','utf-8',$file);
❺ php csv 文字亂碼
你確定文字原來的編碼是「windows-31J」嗎?日文windows的默認編碼是SHIFT-JIS(SJIS)。
另外,你所說的「CSV文件亂碼」,指的是用office excel打開看亂碼,還是用notepad.exe打開看亂碼?
我記得office excel是不識別utf-8編碼的(只用過office2003以前的版本,現在的版本不知道有沒有改進)
❻ php導出到excel出亂碼時怎麼回事
header 定義編碼時要存成和定義編碼一樣的文件編碼模式,
header不定義編碼時存為默認的ansi(gbk)模式
❼ php導出excel 亂碼,因為使用phpexcel內存不足的原因
如果資料庫存儲的格式是utf-8.
數據輸出時的格式也是utf-8。
php輸出數據時是utf-8 的無BOM格式。
但是在excel,或是csv輸出數據時都是要帶上bom格式的數據。在excel格式的文檔中亂碼就需要在輸出的最頂端加上 chr(0xEF).chr(0xBB).chr(0xBF)(BoM格式)就可以解決亂碼問題。
❽ php 資料庫 導出excel 的時候 導出成功 但是卻是亂碼 請問怎麼解決
你指定的PHPExcel生成的是xls格式的文件。是一種電子表格格式,這種格式一般是用excel打開處理的。直接用文本方式顯示就是亂碼的。但為什麼是直接輸出這些亂而不是下載呢?是因為你沒有給輸出指定頭信息告訴瀏覽器輸出的內容不是直接顯示而是供下載的,瀏覽器所以瀏覽器也不懂,它只好老老實實給輸出來。你試著在上面那段代碼前加上如下內容:
header("Cache-Control: public");
header("Pragma: public");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type:application/download");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=你自己指定或生成文件名.xls");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
❾ PHP 導出excel文件響應的內容是一堆亂碼,把這堆亂碼在新的窗口打開,導出的文件是正常的,怎麼解決
導出前最好轉碼下iconv轉成gbk的,資料庫里是utf8的
❿ PHP導出csv中文亂碼
中文簡體xp的話默認使用gb2312作為碼頁,他打開一個文件時使用gb碼來映射字元的。用gb2312碼打開utf8的文件當然會亂碼。
所以想在xp里導出,需要是
mb_convert_encoding($str,"CP936","GB2312")
如果已經下下來了或者php不好改,自己想轉碼,就是用個編輯器比如ue,ep,設置存儲為utf8。xp sp3版本的話自己也可以另存為utf8