簡體   English   中英

PHP CSV導出另存為Unicode文本而不是CSV

[英]PHP CSV export saves as unicode text instead of CSV

我從php導出到csv時遇到問題。 當我導出到CSV時,效果很好。 我可以打開它並對其進行編輯。 但是,當我要“另存為”編輯后的文件時,它說另存為Unicode文本(.txt)

我想直接另存為CSV。 導出的文件名具有CSV擴展名。 這是我的代碼:

    $filename = "export-".date("d-m-Y").".csv";
    ob_end_clean();
    $filePath = 'php://output';
    header('Content-Encoding: UTF-8');
    header('Content-Type: application/csv; charset=UTF-8');
    header('Content-Disposition: attachement; filename="'.$filename.'";');
    $f = fopen($filePath, 'w');
    echo "\xEF\xBB\xBF"; // UTF-8 BOM

    $header = array();
    // GET CURRENT HEADERS
    foreach ($data[0] as $key => $value) {
        array_push($header,$key);
    }
    fputcsv($f, $header, $delimiter);
    //unset($data['headers']);
    foreach ($data as $line) {
        fputcsv($f, $line, $delimiter);
    }
    fclose($f);

我嘗試了幾種不同的標題,但沒有一個起作用。 我用Google搜索並搜索了Stackoverflow,但我似乎是唯一出現此問題的人。 有人熟悉嗎?

看看UTF-8 BOM。

發生了類似的問題,刪除BOM阻止了此行為,但是需要確認UTF-8字符仍然可以正確顯示等。尚未經過全面測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM