Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn PHP MySQL mit verstümmelten Zeichen nach Excel exportiert?
Lösung für den verstümmelten PHP-Export von MySQL nach Excel: Legen Sie zuerst die Zeitzone und die Header-Informationen fest. Löschen Sie dann den Puffer über „ob_end_clean();“, und stellen Sie schließlich die Tabelleninformationen ein.
Empfohlen: „PHP-Video-Tutorial“
PHP fragt die Datenbank ab, um Excel zu exportieren, und löst das verstümmelte Problem. Für den nativen Code sind keine Plug-Ins erforderlich.
Ich habe kürzlich ein Informationssystem geschrieben und Ich muss den Inhalt der Datenbank nach Excel exportieren
Ich werde meinen Code unten veröffentlichen, es ist kein PHPExcel-Plugin erforderlich
Systemanforderungen: php5.6+
<?php date_default_timezone_set('PRC');//设置时区 /*设置head头信息*/ ob_end_clean();//清除缓冲区,避免乱码 Header("Content-Type:application/vnd.ms-excel;charset=UTF-8"); Header("Accept-Ranges:bytes"); Header("Content-Disposition:attachment;filename="."导出excel的名字".date('YmdHis').".xls"); Header("Pragma:no-cache"); Header("Expires:0"); $str = $str2 = null; /*设置表格信息*/ $str.= "序号"."\t"; $str.= "学号"."\t"; $str.= "姓名"."\t"; $str.= "性别"."\t"; $str.= "学院"."\t"; $str.= "年级"."\t"; $str.= "班级"."\t"; $str.= "手机号"."\t"; $str.= "报名时间"."\t\r\n"; $info = iconv("UTF-8","GBK",$str); echo $info; /*查询内容导出数据库数据*/ $con = new mysqli("localhost", "root", "password", "detabase"); if (!$con) { die(mysqli_error()) ; } //$sql = " select * from bmxx"; //$res = mysqli_query($con, $sql); mysqli_query($con,"SET NAMES utf8");//解决数据库中有汉字时显示在前台出现乱码问题 $result = mysqli_query($con,"SELECT * FROM `bmxx`"); while($row = mysqli_fetch_assoc($result)){ $list[] = $row; } mysqli_free_result($result); mysqli_close($con); $co = 1; foreach($list as $v){ $str2.= trim($co++)."\t"; $str2.= trim(iconv("UTF-8","GBK","\t".$v['num']."\t"))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['name']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['sex']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['xueyuan']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['grade']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['class']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['phone']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['time']))."\t\r\n"; } echo $str2; ?>
Ich habe diese Codezeile am Anfang nicht hinzugefügt, Dies führt zu einer verstümmelten Ausgabe. Löschen Sie einfach den Puffer vor jeder Datengenerierung,
ob_end_clean();//清除缓冲区,避免乱码
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP MySQL mit verstümmelten Zeichen nach Excel exportiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!