php csv輸出讀取繁體亂碼

上次經歷了一次php csv 輸出亂碼,以為已經能解決了一切問題,但開心得太早了。今天用phpexcel 類讀取一個xlsx 文件,裏面文字比較特別,夾雜著繁體和簡體字,所以一定要用unicode。一讀取,發現亂碼,怎麼回事?之前未發生此情況。

開始排除問題,之前因為已經寫好,所以這次很有信心沒測試直接mysql_query 到數據庫中!慘!很多亂碼,一萬多條要刪除,所以整個數據庫直接刪除(早已經備份了)。

測試一,BOM問題,之前發生亂碼是文件有BOM問題,全部改一次,發現情況一致。

測試二,下載phpexcel 測試文件,直接讀取文件,發現也是亂碼,怎麼辦?

測試三,開始懷疑讀取的文件有問題,一個xlsx 會有甚麼問題呢?於是開啟文件,把它另存成xls,然後再讀取一次,亂碼消失了=.=

發現到是格式問題,然後上網谷哥一下,原來還有不少人討論,元兇和office 2007 有很大關係,今天就不多寫,把這些討論的資料搬上來給大家去參考,解決方法就是:

在寫入csv是,要加入BOM!

參考資料:

http://blog.darkthread.net/post-2009-09-06-csv-encoding-again.aspx

Excel讀取UTF-8編碼的CSV檔,中文變亂碼的簡單解法

http://blog.roodo.com/rocksaying/archives/1096340.html

 

phpexcel 亂碼 輸出解決方法

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

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

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

$objWriter->save($file);

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

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

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

繼續閱讀 phpexcel 亂碼 輸出解決方法

過年後

首先祝網友虎年虎虎生威,身體健康,財源滾滾,事業順利!

過年這假期真是懶人,很多東西我都堆積了起來沒去做。年初一二跑去澳門,第一天就泡在賭場里面吃喝玩樂,第二天才出去澳門逛,澳門真是冷,沒有我想象中那麼『小』,打的還是要60多元,第一次去澳門,免費住宿船票,算是省了不少錢,開開心心放兩天假。

年初三到,假期就完,幫朋友弄一個Joomla CMS,主要是建個新的主題風格,還有就是裝上一些插件。很久沒有去碰joomla,剛開始有點怕它,joomla給我的印象不是很好,主要是因為它支援中文方面比較遜色,還有就是系統很大,運行起來很慢。既然規定了要用Joomla,那就重新打開它的template 來看,改joomla template 不是很難,一開始不要給自己太高要求,例如Menu,開始時不要馬上給他來個jQuery效果,在紙上畫上結構,用css 建構最基本造型,然後加上圖和顏色,位置正確後才加上其他效果。Joomla 內容方面是用table,不是很喜歡,網上說改div的話要改很多文件,所以我就省了。

當給Joomla 裝插件時發生了點小插曲,因為設計全部都在自己電腦上,弄好了想搬上伺服器,誰知那插件既然顯示亂碼,頭疼了,可花了不少時間去看那插件代碼,到了最後想放棄時突然想起database的字符,不知是想說自己聰明還是笨蛋,這事情又不是第一次發生,可卻花了幾個小時找原因,joomla 插件亂碼就是因為database的字符錯誤。因為伺服器的joomla是自動安裝的,伺服器默認的字符不是UTF8,導致中文輸入就全部變問號了,手動改了下database 後中文就回來了。 繼續閱讀 過年後