2016/03/29

將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題


將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題

在 UTF-8 文件中放置 BOM 主要是微軟系統的習慣。但是真的沒有必要帶拉!!!!

http://stackoverflow.com/questions/2223882/whats-different-between-utf-8-and-utf-8-without-bom
According to the Unicode standard, the BOM for UTF-8 files is not recommended:

圖片和內文不太相關



下面提供一種在 windows 上面,政治正確的解法。 XDXD

// ========================================================
// 產生現在的秒數
$time_string = date("YmdHis");

// 寫入 utf8 with BOM
function writeUTF8File($filename,$content)
{
    $f = fopen($filename, 'w');
    fwrite($f, pack("CCC", 0xef,0xbb,0xbf));
    fwrite($f,$content);
    fclose($f);
}

$f = 'uploads/private/'.$time_string.'.csv';
$fdir = 'uploads/private/';

// 檔案不存在就先建立檔案
if (!file_exists($fdir)) {
    mkdir($fdir);
}

writeUTF8File($f,$csv);

echo 'CSV 輸出完成,請點選連結下載。
';
// ========================================================
張貼留言