[網頁][php]亂碼?怎麼又是BOM啊…

Spread the love

【聲明】本站任何文章都可能有聯盟行銷連結,當你透過文章內的連結購買產品,我可能獲得分潤,這不會增加你任何成本,並且我分享的都是自己實際使用過的資訊,更多細節請點這裡。 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
Chaneswin

【阿淳】漂流過網路行銷、組織行銷、被創業的光環迷惑過,體驗那些未曾想像的驚奇之後,最終的自由卻是擁有澄澈的雙眼、返璞歸真的看世界,我的冒險不在鎂光燈的絢麗舞台,而在迷宮中。把心路歷程化為故事、把工具筆記在雲端。在瞬息萬變的世界裡,慢慢來。
【阿淳的自由生活工具箱】前身小查的白日夢。從腦中的虛幻到真實世界,這裡記錄著一路上不同階段的想法、課程、工具、實踐、挫折,從此放下權威迷思。如果翻出你需要的工具,歡迎隨喜自取、提問討論 :)

文章: 316

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *