Excel 預設是沒有法辦直接讀取 UTF8 格式的文件 , 所以每次開啟 UTF8 格式的 CSV 檔 就會顯示亂碼
今天在閒逛 , 剛好爬到這篇文 ,就轉貼給讀者參考參考 , 請多多指教 ^^ (測試是OK無誤的)
範例:
$fp = fopen("report.csv","w");
//fwrite($fp, iconv('UTF-8', 'BIG5',$output)) //註1
fwrite($fp, "\xEF\xBB\xBF".$output) //註2
說明:
1.此段將$output寫入檔案report.csv,其中$output為UTF-8編碼之資料
2.註1為原本使用方法,先將$output轉碼為Big5,但遇到Big5中無相對應之字,則會發生內容遺失的情況。
3.註2在$output前加上"\xEF\xBB \xBF",此為寫入BOM標籤,目的在使Excel能正確讀取UTF-8編碼。
附帶說明:
BOM標籤有可能會使文字編輯器對內容編碼造成誤判,不過情況非常非常非常非常罕見......
詳見http://blog.roodo.com/rocksaying/archives/1096340.html
原文取自 http://jeiworld.blogspot.com/2009/09/phpexcelutf-8csv.html