【发布时间】:2016-04-04 07:05:37
【问题描述】:
我正在尝试将数据从 mysql 导出到包含一些汉字的 csv,但是它总是变成垃圾代码。我用谷歌搜索并找到在标题处添加 BOM 的建议。但它似乎仍然不起作用,这是我的代码。请提出建议。
<?php
if(isset($_POST["Export"]))
{
mysql_connect('localhost','test','abc');
mysql_select_db('test');
header('Content-Encoding: UTF-8');
header('Content-Type: text/csv; charset=utf-8' );
header(sprintf( 'Content-Disposition: attachment; filename=my-csv-%s.csv', date( 'dmY-His' ) ) );
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
$data = fopen( 'php://output', 'w' );
//This line is important:
fputs( $data, "\xEF\xBB\xBF");
fputcsv($data,array('student_id','student_chiName','student_engName',' student_title','student_gender','news_receive'));
//Retrieve the data from database
$rows = mysql_query('SELECT * FROM student');
//Loop through the data to store them inside CSV
while($row = mysql_fetch_assoc($rows)){
fputcsv($data, $row);
}
}
?>
【问题讨论】: