phpexcel 亂碼 輸出解決方法

phpexcel 很常用,因為可以用來讀取excel,又可以輸出,之前在用時就遇到一個問題,輸出下載時出現亂碼,之前由於趕時間,就沒有用瀏覽器直接下載,而是提供下載鏈接,因為有些不同;

$objWriter->save(‘php://output’);

上面是直接跳出下載提示,不會存在伺服器

$objWriter->save($file);

這個就會存一份在伺服器中,$file就是你定義的名字,路徑等。

那麼直接下載亂碼如何解決,筆者看了很多資料,google了不少,終於解決了,在此總結。

因為程序用了smarty,因此需要考慮這問題。

首先是header()問題,這些header 是提供信息給瀏覽器看,因此這些信息最好放在<?php 下一行,因為header前不能有空行,不然會有錯誤。header 錯誤可能會導致不會popup 提示下載顯示錯誤,解決了就會提示下載。

除了這個,還會有亂碼問題,這個又是關於文件dom 問題,雖然很多人在網上說不能有空行,不過一個文件include 了很多文件,究竟如何追查?太笨了吧,我先用了這笨的方法,把文件轉成UTF-8,然後又移除DOM,結果沒用。最後在官方那找到好用的東西,在header()前加上

ob_end_clean();

就這麼一句,亂碼解決了!

就這麼簡單,但花了幾個小時嘗試,算是得益。

作者

rockfu

由小學年代已經沉迷電腦,喜歡分享電腦相關資訊。