【聲明】本站任何文章都可能有聯盟行銷連結,當你透過文章內的連結購買產品,我可能獲得分潤,這不會增加你任何成本,並且我分享的都是自己實際使用過的資訊,更多細節請點這裡。 Disclosure: Any post on this site may contain affiliate links, meaning I get commission if you decide to make a purchase through my links, at no cost to you.
去年在學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吧…https://www.nep-hk.com/drupal/?q=node/59
阿淳的自在生活工具箱 除客座文章分類外,均為阿淳(chaneswin)原創,禁止商業使用,歡迎社群分享,轉載請註明作者與原文連結,禁止商業使用。有任何想法歡迎留言交流!
原文連結:[網頁][php]亂碼?怎麼又是BOM啊…