繁体   English   中英

Php csv 导出下载为 Windows-1252 而不是 utf_8

[英]Php csv export downloaded as Windows-1252 instead of utf_8

你好,我有 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); 

当我把时间浪费在挑战编码上时,我使用了 output 缓冲,它工作得很好

ob_clean();
    ob_start();
      $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; 
 ob_end_flush();
exit(0); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM