php导出非乱码非乱序 奇葩问题求大神挫进来帮帮小弟
上面第一个图是导出后的效果图,第二张是数据库实际数据,细心的哥们就发现导出的图后三位全部变为0,这神马情况啊
求大神指点
代码如下:
<?phpdefine('NOROBOT', true);define('CURSCRIPT', 'charge');require_once './include/common.inc.php';header("Content-type:application/vnd.ms-excel;charset=utf-8");header("Content-Disposition:attachment;filename=充值卡.xls");$page = $page ?: 1; $results = array(); $condition = ''; echo "被充值手机号"."\t"; echo "充值卡序列号"."\t"; echo "充值金额"."\t"; echo "实充额度"."\t"; echo "充值时间"."\t";$query = $mysqli->multi_query('CALL UP_User_GetCardInfo("'.$condition.'","'.$page.'","900000")') or die($mysqli->error);$query = $mysqli->store_result(); while ($record = mysqli_fetch_array($query, MYSQLI_BOTH)){ $phone = $record['phone']; $cardid = $record['cardid']; $charge = $record['charge']; $achieve = $record['achieve']; $chgdate = $record['useDate']; echo "\n"; echo $phone."\t"; echo $cardid."\t"; echo $charge."\t"; echo $achieve."\t"; echo $chgdate."\t"; }if(is_object($query)) $query->free_result();$mysqli->next_result(); ?>
回复讨论(解决方案)
没人!
用另外一种方法也是一样的效果,代码如下:
<?php//iconv("utf8","gb2312",$v)。数据库用的UTF8,导出csv时如不转换excel打开中文将显示乱码(文本正常)require_once './include/common.inc.php';function exportToCsv($csv_data, $filename = 'export.csv') { $csv_terminated = "\n"; $csv_separator = ","; $csv_enclosed = '"'; $csv_escaped = "\\"; // Gets the data from the database $schema_insert = ''; $out = ''; // Format the data foreach ($csv_data as $row) { $schema_insert = ''; $fields_cnt = count($row); //printr($row); $tmp_str = ''; foreach($row as $v) { $tmp_str .= $csv_enclosed.str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, iconv("utf8","gb2312",$v)).$csv_enclosed.$csv_separator; } // end for $tmp_str = substr($tmp_str, 0, -1); $schema_insert .= $tmp_str; $out .= $schema_insert; $out .= $csv_terminated; } // end while header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Length: " . strlen($out)); header("Content-type: text/x-csv;charset=utf-8"); header("Content-Disposition:filename=$filename");#header('Content-Disposition: attachment;filename="'.iconv('utf-8', "gb2312", $filename)); echo $out;}#$title = array("uid","username","company");#$title = $_SESSION["exp_title"];$title = array();$field = array();foreach ($_SESSION["exp_title"] as $key => $val){ $title[] = $key; $field[] = $val;}#$query = $mysqli->query("select uid,username,phone from ccna_members limit 10") or die($mysqli->error);#$query = $mysqli->multi_query("select * from ccna_members limit 10") or die($mysqli->error);$query = $mysqli->multi_query($_SESSION["exp_sql"]) or die($mysqli->error);$query = $mysqli->store_result();//$csv_data = array(array('uid', 'username'));//所有记录就存这啦$csv_data = array(array());//压入表头,将字段放到第一行for ($i=0; $i < count($field); $i++) { $csv_data[0][$i]= $field[$i];}while($row = mysqli_fetch_array($query,MYSQLI_BOTH)){ //array_push($csv_data, array($row[0],$row['username'])); $row_array = array(); for ($i=0; $i < count($title); $i++) { #array_push($row_array,iconv("utf-8","gb2312",$row[$title[$i]])); array_push($row_array,$row[$title[$i]]); } array_push($csv_data,$row_array);}exportToCsv($csv_data,$_SESSION["exp_filename"].".csv");?>
echo $cardid."\t";
改为
echo “‘$cardid\t";
echo $cardid."\t";
改为
echo “‘$cardid\t";
还是一样,不行。谢谢你的回答
怎么可能,你产生的就是文本文件,只不过后缀不同罢了
我加你扣扣可以吗?
怎么可能,你产生的就是文本文件,只不过后缀不同罢了
可以我改成echo "$cardid\t"; 还是不行,不知道为什么。
"’$cardid\t";
有个单引号
是也在想:字太小可能看不清
"’$cardid\t";
有个单引号
是也在想:字太小可能看不清
谢谢。 结贴给分
?成字符串就可以了。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

word頁碼亂碼的解決方法:1、開啟word文檔,點選左上角的「文件」選項;2、選擇「更多」選項,再點選「選項」按鈕;3、在word選項中選擇「進階」;4 、在“顯示文件內容”中找到“顯示域代碼而非域值”,去掉前方的勾選,並點擊確定,回到主頁即可。

Linux中文亂碼問題是使用中文字元集和編碼時常見的一個問題。出現亂碼的原因可能是檔案編碼設定不正確,系統語言環境未安裝或未設置,以及終端顯示設定錯誤等。本文將介紹幾種常見的解決方法,並提供具體的程式碼範例。一、檢查檔案編碼設定使用file指令查看檔案編碼在終端機中使用file指令,可以檢視檔案的編碼:file-ifilename如果輸出中有"charset

tomcat啟動亂碼的解決方法:1、修改Tomcat的conf設定檔;2、修改系統語言;3、修改命令列視窗編碼;4、檢查Tomcat伺服器設定;5、檢查項目編碼;6、檢查日誌檔;7 、嘗試其他解決方案。詳細介紹:1、修改Tomcat的conf設定文件,開啟Tomcat的conf目錄,找到"logging.properties"檔案等等。

在Windows10系統中,出現亂碼現象可謂司空見慣。這背後的原因往往在於該作業系統並未對部分字元集提供預設的支持,抑或是設定的字元集選項有錯誤。為了對症下藥,以下我們將為您詳細解析實際的操作規程。 windows10亂碼怎麼解決1、開啟設置,找到「時間和語言」2、再找到「語言」3、找到「管理語言設定」4、點選這裡的「更改系統區域設定」5、如圖勾選上然後點擊確定就可以了。

linux tty中文亂碼的解決方法:1、透過「sudo apt-get install fbterm」指令下載字型fbterm;2、執行「sudo fbterm」指令;3、變更字型和字型大小為「font-names=Ubuntu Mono font- size=14”即可。

filezilla亂碼的解決方法有:1、檢查編碼設定;2、檢查檔案本身;3、檢查伺服器設定;4、嘗試其他傳輸工具;5、更新軟體版本;6、檢查網路問題;7、尋求技術支援。解決FileZilla亂碼問題需要從多個方面入手,逐步排除問題原因,並採取相應的措施進行修復。

win11文字文檔亂碼怎麼解決?許多使用者在使用win11系統的時候出現了文本文檔亂碼的情況而導致無法正常的進行閱讀,出現這個問題很多小伙伴都不知道該如何解決。其實這個方法並不難,下面小編整理了windows11系統文件亂碼解決步驟,希望能帶給大家一點啟發! windows11系統文件亂碼解決步驟1、首先,開啟win11的控制面板,在下面的搜尋框中輸入控制面板,點選搜索,進入控制面板。 2.進入面板後,找到時鐘和區域並點選進入,再點選區域選項。 3.進入後,點選管理面板,再點選更改系統區域設定。

有很多的用戶在使用電腦的時候,會發現有很多的文件的尾綴是dll,但是很多的用戶們都不知道這種文件需要怎麼打開,想要知道的用戶們快來看看以下詳細教程吧~dll檔案怎麼打開編輯:1、下載一個叫做「exescope」的軟體,並下載安裝。 2、然後右鍵dll文件,選擇「用exescope編輯資源」。 3、然後在彈出的錯誤提示框中,點選「確定」。 4、然後在右邊的面板上,點擊每個組前面的「+」號可以查看到它所包含的內容。 5.點選需要檢視的dll文件,就能夠看到了,然後點選“文件”,選擇“匯出”。 6、然後就能夠
