kri*_*fur 0 php csv macos encoding header
MAC始终会读取CSV,因此我猜这是一个Mac问题
我用这段代码生成一个csv文件(thx SO:p)
<?php
include("../include/include.php");
$file_new_export = '../temp/new_hve_full.php';
$query = "select * from mytable";
$result = mysql_query($query) or die("Sql error : " . mysql_error());
if (!$result)
die('Couldn\'t fetch records');
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
$hve_biodiv = unserialize($row['hve_a']);
$hve_ferti = unserialize($row['hve_b']);
$hve_phyto = unserialize($row['hve_c']);
$hve_irri = unserialize($row['hve_d']);
$hve_eco = unserialize($row['hve_e']);
$content[] = array_merge(array_values($hve_a), array_values($hve_b), array_values($hve_c), array_values($hve_d), array_values($hve_e));
if ($i == 0)
$headers = array_merge(array_keys($hve_a), array_keys($hve_b), array_keys($hve_c), array_keys($hve_d), array_keys($hve_e));
$i++;
}
$fp = fopen($file_new_export, 'w');
if ($fp && $result) {
fwrite($fp, '<?php ');
fwrite($fp, 'header(\'Content-Type: application/csv; charset=iso-8859-1\');');
fwrite($fp, 'header(\'Content-Disposition: attachment; filename="export_hve.csv"\');');
fwrite($fp, 'header(\'Pragma: no-cache\');');
fwrite($fp, 'header(\'Expires: 0\');');
fwrite($fp, '?>');
fputcsv($fp, $headers, ';');
foreach ($content as $fields) {
fputcsv($fp, $fields, ';');
}
fclose($fp);
}
?>
Run Code Online (Sandbox Code Playgroud)
一切正常,但我得到一些错误编码的字母,通常不是"é"我得到"È"它接近但不好...
如果内容类型和文件名是开关等的HTML或txt文件,那么所有caracters都是很好的展示,它似乎只影响到CSV文件,如果切换编码对excel的Mac西欧它仍然没有工作. ..
不知道在这里做什么,我找的不编码为utf8所有文件或这样的事情原因没有s很多数据的一个简单的解决方案......一切都按照我的设置是在ISO8859-1(BDD/IDE/PHP编码)...
谢谢你的帮助
那么我应该认为这可以解决你的问题.只需将此行放在php文件的顶部(在任何包含之前):
header('Content-Type: text/html; charset=iso-8859-1');
Run Code Online (Sandbox Code Playgroud)
有关更多信息:Enconding Type Header
这是因为它会正确编码文件.
gl,Paulo Bueno
归档时间: |
|
查看次数: |
9315 次 |
最近记录: |