去年在學php的時候,遇到了找不出錯誤的問題
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\test\guestmsg.php:1) in C:\AppServ\www\test\guestmsg.php on line 61

google了一下揪出了元兇--BOM: Byte Order Mark
UTF-8 BOM又叫UTF-8 簽名,其實UTF-8 的BOM對UFT-8沒有作用,是為了支援UTF-16,UTF-32才加上的BOM,BOM簽名的意思就是告訴編輯器當前檔採用何種編碼,方便編輯器識別,但是BOM雖然在編輯器中不顯示,但是會產生輸出,就像多了一個空行。
使用 utf-8 編碼來編寫網頁的時候, 往往會因為 bom (Byte order Mark) 的問題,導致網頁中經常出現一些不明的空行或者亂碼字元。 這些都是因為 utf-8 編碼方式對於 bom 不是強制的。


原以為這就是跟BOM的一面之緣,讓我知道不要用微軟的記事本去寫php網頁~
想不到會再續前緣

這次有同學問說為什麼在Mac上的php無法顯示中文呢?因為Dreamwaver是英文版嗎?
怎麼可能!?網頁不都是認編碼的嗎?
其實在問我Apache啟動後怎麼沒有PHP時我已經有點汗顏了,平常都是用PC的套件,
不過後來同學自己找到了XAMPP,我只幫忙找到了伺服器資料夾在XAMPP底下的htdocs
離開這點,亂碼這小問題總該可以解決吧
直覺性的加上了mysql_query("set names 'utf8'");還是亂碼!

第一個想到的就是資料庫編碼對應,
查了一下怎麼都是些乍看很複雜的文啊囧!有點懶說...
而且等等...根本就還沒開始連結資料庫啊...不過是簡單的for迴圈跟echo而已耶...

翻翻別的網頁,echo有顯示中文阿!
於是想到了頁面屬性...

看到了勾選著的BOM...去掉這個勾~
喔耶~亂碼消失了!!

原來原來,還是不可以小看BOM...


後記:以後也來研究MAC吧...http://www.nep-hk.com/drupal/?q=node/59
arrow
arrow
    文章標籤
    php 亂碼 BOM MAC
    全站熱搜

    阿淳 發表在 痞客邦 留言(0) 人氣()