摘要:ForSource福爾壽司的辦案手札 Case2.併頁亂碼
現場:
AP環境:
- VM架設的server 2k3 sp2
- IIS 6.0WPI加裝的PHP 5.3.5
案件說明:
馬森沒有寫過PHP,但是對PHP的名號並不陌生。但或許太習慣微軟的VS開發軟體,
這次有機會碰到PHP,第一件事竟然是問有沒有什麼工具能trace能complier,PHP能不能code behide之類的問題。
得到了一個非常有幫助的答案,「寫就對了,用notepad++吧」。第一句真是當頭棒喝,更佛心的是他是推薦我notepad++而不是notepad XD。
於是我就用notepad++開始我的PHP之旅了。
想不到旅途剛開始,就遇到了案件,由於有好幾頁會有相同的banner,而這個banner的特性是會每年更換,
所以我想寫一頁共用的php網頁給每頁引用,明年只要改一頁,就可同時變更整個網站的網頁了。
(每年會更動的banner示意圖)
程式碼:
banner.php的內容
2011馬賽克處理聯賽官方網帖
結果跑出來的畫面確是亂碼。
但是網頁的其它部份,中文顯示確是正常的。這麼簡單的語法,我也是直接從接手的網站copy過來的,為什麼它可以正常顯示,而我卻不行呢?我相信語法不是兇手,那麼會是誰?查了一下編碼,也是正常的,而且在html中也都有加入下面的語法,來決定網頁的編碼。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
那麼矛頭就指向原始檔了,google了一下得到了答案。
線索:
- 語法正確無誤
- 網頁的編碼有使用meta 設定。
解決方法:
Notepad++馬上有了他表現的空間,使用Notepad++開啟banner.php,然後選擇「編碼」→轉換至UTF-8碼格式(檔首無BOM)→存檔。
刷新網站,正常顯示!!破案!!