Heim >Backend-Entwicklung >PHP-Problem >Was tun, wenn PHP verstümmelte CSV-Zeichen generiert?
php generiert verstümmelte CSV-Zeichen, da die Ausgabedatei im CSV-Format keine Stückliste hat. Die Lösung besteht darin, die Zeichenkodierung mit einem Code wie „header(“Content-type:text/csv;charset=“ anzugeben gb2312");".
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Lösung für verstümmelte chinesische Zeichen in PHP-Ausgabe-CSV-Dateien
PHP-Downloaddateien verwenden häufig die Byte-Stream-Ausgabe. Daher lautet der häufig verwendete Code zum Herunterladen des CSV-Formats wie folgt:
header("Content-Type: application/force-download"); header("Content-type:text/csv;charset=gb2312"); header("Content-Disposition:filename=打开邮件导出".date("YmdHis").".csv"); echo "收件人邮箱,收件人姓名,发送时间\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;
Es ist normal, dass die auf diese Weise heruntergeladene CSV-Datei mit einem Editor wie Notepad oder Sublime Text geöffnet wird, beim Öffnen mit Excel wird sie jedoch verstümmelt Der Grund dafür ist, dass die Ausgabedatei im CSV-Format keine Stückliste enthält. Es gibt viele Meinungen, dass Stücklisten in PHP entfernt werden müssen, CSV-Dateien jedoch die Zeichenkodierung für Stücklisten verwenden müssen.
Die Lösung lautet wie folgt:
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 "收件人邮箱,收件人姓名,发送时间\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;
Aufgrund des Unterschieds zwischen den Zeilenumbrüchen in Linux und Windows. Wenn der obige Code auf dem Linux-Server schlecht reagiert, können Sie „r“ in „rn“ ändern.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP verstümmelte CSV-Zeichen generiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!