2007
10.25


雖然我已經很久沒在網頁中用Big5的編碼模式了,但是難免在課堂上會被問到這樣的問題,例如若是想在PHP中想要輸出"成功"這樣的字樣,看起來明明沒寫錯,但是為什麼就是被告知語法有錯,通常這種BUG最難抓了,為了讓也有遇到相同問題的朋友可以找到答案,我將問題記錄在這。

想要在網頁中用PHP輸出"成功"的字樣,應該不是什麼困難的事,只要透過echo指令就可以完成,同學遇到的問題正是這樣。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5" />
<title>編碼測試</title>
</head><body>
<?php
echo("成功");
?>
</body>
</html>

結果執行時很不領情的出現錯誤訊息。 big5.gif
當時我也在那裡反覆找了好久,但是的確是找不出問題,突然靈機一動,想到在編碼中"許功蓋"這樣的字似乎會遇到問題,結果是了一下,沒錯,只要結尾是這三個字的echo指令都會被判斷成錯誤,那怎嚜辦呢?其實只要將網頁編碼轉成utf8就行了,如下面的程式碼:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>編碼測試</title>
</head>lt;body>
<?php
echo("成功");
?>
</body>
</html>

像是這樣的靈異現象還真的事要靠經驗啊,不然就算找破頭大概也很難發現問題在哪?(嘆氣~)


相關文章:
  • PHP5中利用PDO使用各種資料庫(dsn)
  • 淺談PHP 5.3的 Namespace 的概念
  • PHP上傳大檔需要注意的問題
  • PHP中5個常用的系統常數
  • Flex專題實作 – Rico精品時尚購物網 PART II
  • 本文引用:
    文章內容由宋志峰[ANISTAR]撰寫,引用分享請以鏈結形式註明出處與原始作者。

    8 comments so far

    Add Your Comment
    1. 高手請問您,大富翁的actionscript要怎麼寫?我的教案想設計一款跟大富翁相關的遊戲,可以請教您嗎?謝謝

      • 啊…這個問題實在是一言難盡啊, 很難在網站上面做交流啊 XD

    2. Dear Zin:

      要把東西學好的不二法門就是練習練習再練習,上課雖然可以讓你快速吸收和擁有正確的觀念(重點部會花好幾個月摸索還搞不出來,還有人隨便讓你問),但是事後沒有練習,最後就會忘光光了,這就跟練腹肌一樣,若是不持續的煉下去,馬上就會團結在一起,四海一家親。

      扯遠了,俗話說的好,行行出狀元,沒有哪一個技術是對找工作特別有利的,因為每個軟體在公司都有需求,那就要看你對哪個領域比較感興趣了,若是對RIA比較有興趣,那就要把課堂中的ActionScript和Flash Remoting摸清楚,若是對Server有興趣,則要把PHP和Mysql摸清楚,若是對美術的工作有興趣,則要把Photoshop,Flash等軟體摸清楚,若有問題可以再最後的專題實作提出來,我會指導你們業界是如何運作的,讓你們找工作和進入公司後會較為順遂。

    3. Dear R292:

      慘…..剛剛打了一堆結果不小心按到別的按鍵,網頁前往別頁,什麼都沒存到. Orz
      這次簡短的說明一下好了,Flash Player會在資源不夠用時自動的做資源回收(GC)的動作,並不是馬上回收掉,最好的方法是在拋棄前順便把事件全部清掉(清掉的方法可以參考我寫的ActionScript3.0那本書)。
      我試玩了大約5圈,沒有發現變慢的現象,要認真找起就要看source code了,或許最後發現也許不是GC的問題,這很難說,希望你可以順利解決。
      順便問一下,因為光看英文名子很難記的起來你是哪一個學生,如果不好意思公開回答的話,可以寄信給我,請寄到anistar.tw@yahoo.com.tw。

    4. 我是你web2.0課程的學生,想請問:關於這個課程是很不錯,教得東西很多,但是要在這麼短的時間內精通全部的軟體和程式,實在是有點困難,每次剛上完一個軟體,還沒完全精通就要開始上下一個orz….而從沒寫過程式的我碰到PHP就讓我一個頭兩個大,上課雖然是聽得懂,但是有很多邏輯還是不是非常熟悉,常常會搞亂,現在要我從頭到尾自己親自寫出一個完整的後台程式,其實還是有點困難的,所以我想問的就是如果在這麼多課程中,我想先挑幾個把它研究的更精通,不知道您覺得哪些對於找工作比較有利,我想在課程結束前,把它弄得更熟一些,不然這樣感覺好像自己什麼軟體都好像都只學到皮毛…先謝過…

      • 課堂上都是在教你如何的去使用工具與了結語法, 要能自己獨立作業要靠你自己練習與努力啊, 不然上10000個小時的課程也沒用啊, 還記得我跟你們分享成為高手的秘訣嗎?
        1. 練習
        2. 再練習
        3. 不斷的練習
        不練習要能夠熟練根本是天方夜譚, 跟你共勉之, 後面的70小時專題實作就是強迫你練習的時間了, 通常也是學生反映學到最多的時間, 不過成效就要看你了, 我是站在"顧問"的角度幫祝你們, 雖然還要幫你們debug XD
        當所有講師站在台上前其實自己都不知道已經練習了幾萬個小時了, 光是ActionScript 我就練習了7年以上, 所以練習才是熟練之本啊.

    5. 老師您好,謝謝您上次的解答,
      不過…我又有新問題要來借版發問了(羞)

      這次的問題是有關flash player的記憶體管理,
      我用flex3中的flex profiling去看我做出來的遊戲,
      我發現,我自訂的類別實體,就算在用完後有使他=null,
      但flash player並不會馬上釋放其佔用的記憶體,
      是否有什麼方法可以令其馬上釋放其佔用的記憶體呢?

      另在flex profiling中是會固定時間去整理釋放沒用到的物件,
      但可能是因為我做的遊戲是直接寫成一個class,然後在要用的地方直接引用後實作,
      因此在實際用戶端中使用的flash player並不會定期去釋放遊戲中沒用到的物件,
      這種情況有沒有辦法可以改善呢?

      詳細的情形您可以參考我blog中試做的大富翁遊戲,
      http://tinyurl.com/2n8buk
      您會發現會越玩會越慢,
      但在flex中測試時並不會發生這種情況,
      真的是很奇怪啊??

      • Flash Player的資源回收機制式自動的, 除了debug模式外無法強制去執行, 至於遊戲會越玩越慢的問題我想恐怕要去track程式碼才能知道結果了, 我想大多是演算碼的問題吧.