Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP verstümmelte CSV-Zeichen generiert?

Was tun, wenn PHP verstümmelte CSV-Zeichen generiert?

藏色散人
藏色散人Original
2021-05-18 09:42:213032Durchsuche

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");".

Was tun, wenn PHP verstümmelte CSV-Zeichen generiert?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn