【发布时间】:2015-05-21 04:31:41
【问题描述】:
我正在尝试导出 CSV 文件,该文件在导出时运行良好。但是当我打开我的 csv 文件时出现了一些问题,有一些文本更改为“??????”。但在 phpmyadmin 中一切正常。文本采用 utf-8 编码。
这是我的代码
<?php
$day = $_POST['day'];
$starttime = "'".$day.' 00:00:00'."'";
$stoptime = "'".$day.' 23:59:59'."'";
$uname = "*********";
$pass = "*********";
$host = "*********";
$database = "*********";
$connection=mysql_connect($host,$uname,$pass);
echo mysql_error();
$selectdb=mysql_select_db($database) or die("Database could not be selected");
$result=mysql_select_db($database)or die("database cannot be selected <br>");
$output = "";
$table = "***********";
$sql = mysql_query("SELECT * FROM $table WHERE applytime BETWEEN $starttime AND $stoptime");
$columns_total = mysql_num_fields($sql);
$rowcount = mysql_num_rows($sql);
if($rowcount >= 1)
{
for ($i = 0; $i < $columns_total; $i++) {
$heading = mysql_field_name($sql, $i);
$output = '"'.$heading.'",';
}
$output .="\n";
while ($row = mysql_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {
$output .='"'.$row["$i"].'",';
}
$output .="\n";
}
$filename = "myFile.csv";
header("content-type:application/csv;charset=UTF-8");
header('Content-Disposition: attachment; filename='.$filename);
echo $output;
exit;
}
else
{
echo("There is no record Today");
}
?>
请帮忙谢谢。
【问题讨论】:
-
你是如何打开文件的?可能您使用的程序不理解 UTF-8 文本,所以它显示
?代替某些字符 -
在打开的 CSV 文件中单击列或增加列宽。
-
@SumanSingh 你的解决方案会发生什么?
-
很多时候 CSV 显示 '???'类似于日期字段,但是当我们单击列时,它将显示当前格式化的数据。