【发布时间】:2020-09-01 13:48:30
【问题描述】:
你好,我有 utf_8 编码的数据,但是在导出时我在 microsoft excel 上打开它我得到了这个
当我以 excel 格式打开文件时,我会从原始文件 1252 windows
中获取此编码这是我的代码
$outputCSv = "";
$someData = array(
array('one' ,'two' ,'three'),
array('واحد', 'اثنان', 'ثلاثة'),
array ('اربعة', 'خمسة', 'ستة'),
array('سبعة', 'ثمانية', 'تسعة'));
foreach ($someData as $data) {
$outputCSv .= implode(',', $data) . "\r\n";
}
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment;filename=csvTest.csv");
header("Content-Encoding: UTF-8");
echo "\xEF\xBB\xBF"; // UTF-8 BOM
echo $outputCSv; exit(0);
【问题讨论】:
-
这与 phpexcel 或 phpspreadsheet 无关,我不太明白你为什么使用
application/vnd.ms-excelmime 类型 - csv 应该是text/csv -
我删除了 phpexcel 和 phpspreadsheet 标签,即使将其更改为 text/csv 仍然与 1252 windows 编码中的文件相同
-
你试过notepad++或者vscode或者其他更高级的编辑器吗?
-
是的,当我使用 notepad++ 或其他编辑器时,我得到了我想要的结果,但只有当我在 microsoft excel 中打开时,我才会得到错误字符
标签: php export-to-csv