CSV传输到Excel的编码错误

时间:2012-02-16 10:05:52

标签: php excel csv

excel 2003可以打开csv文件,如果分隔符是tab,它可以自动将数据转换为正确的列。

问题在于不是ascii的字符。 libreoffice打开用于选择charset的对话框,但excel 2003没有,并将字符导入错误的字符集。

<?php
$filename ="excelreport.xls";

$contents1 = "Name \t Location (where from) \t Age \t \n";
$contents = "testdata1 \t testdata2 \t testdata3 \t \n";
$problematicData = array('ä', 'ö', 'õ', 'ü');

header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);

echo $contents1;
echo $contents;
echo implode(" \t ", $problematicData);

//编辑 可能我发现一个修复程序添加了这个标题('Content-type:application / ms-excel; charset = utf-8; encoding = utf-8');但我还没有用excel 2003测试它。

1 个答案:

答案 0 :(得分:0)

尝试使用逗号代替? PHP有一个fputcsv函数,可以轻松处理