本文目錄一覽:
- 1、php 數據庫 導出excel 的時候 導出成功 但是卻是亂碼 請問怎麼解決?
- 2、php導出excel 亂碼,因為使用phpexcel內存不足的原因
- 3、php 導出Excel亂碼 大神幫忙指路,急急急!!!!!!
- 4、php導出到excel出亂碼時怎麼回事?
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 亂碼,因為使用phpexcel內存不足的原因
如果數據庫存儲的格式是utf-8.
數據輸出時的格式也是utf-8。
php輸出數據時是utf-8 的無BOM格式。
但是在excel,或是csv輸出數據時都是要帶上bom格式的數據。在excel格式的文檔中亂碼就需要在輸出的最頂端加上 chr(0xEF).chr(0xBB).chr(0xBF)(BoM格式)就可以解決亂碼問題。
php 導出Excel亂碼 大神幫忙指路,急急急!!!!!!
?php
$DB_Server = “localhost”;
$DB_Username = “root”;
$DB_Password = “3721”;
$DB_DBName = “wangshang”;
$DB_TBLName = “ws_info”;
$savename = date(“YmjHis”);
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die(“Couldn’t connect.”);
mysql_query(“Set Names gb2312”); $file_type = “vnd.ms-excel”;
$file_ending = “xls”;
header(“Content-Type: application/$file_type;charset=big5”);
header(“Content-Disposition: attachment; filename=”.$savename.”.$file_ending”);
//header(“Pragma: no-cache”);
$now_date = date(“Y-m-j H:i:s”);
$title = “數據庫名:$DB_DBName,數據表:$DB_TBLName,備份日期:$now_date”;
$time=’1303776000′;
echo date(“Y-m-d”,$time);
$sql = “Select ws_type,info2,info1,tel,mobile,userid from $DB_TBLName where cityid=’7′ and addtime'”.$time.”‘and ws_type=’2′”;
echo $sql;
exit;
$ALT_Db = @mysql_select_db($DB_DBName, $Connect) or die(“Couldn’t select database”);
$result = @mysql_query($sql,$Connect) or die(mysql_error());
echo(“$title\n”);
$sep = “\t”;
for ($i = 0; $i mysql_num_fields($result); $i++){
echo mysql_field_name($result,$i).”\t”;
}
print(“\n”);
$i = 0;
while($row = mysql_fetch_row($result)){
$schema_insert = “”;
for($j=0; $jmysql_num_fields($result);$j++){
if(!isset($row[$j]))
$schema_insert .= “NULL”.$sep;
elseif ($row[$j] != “”)
$schema_insert .= “$row[$j]”.$sep;
else
$schema_insert .= “”.$sep;
}
$schema_insert = str_replace($sep.”$”, “”, $schema_insert);
$schema_insert .= “\t”;
print(trim($schema_insert));
print “\n”;
$i++;
}
return (true);
?
直接用
php導出到excel出亂碼時怎麼回事?
header 定義編碼時要存成和定義編碼一樣的文件編碼模式,
header不定義編碼時存為默認的ansi(gbk)模式
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/247299.html