SpeedPHP框架目前有三個不同的版本(分支),分別是UTF8版本、GBK版本和新浪云計算(SAE)版本。
UTF8版本是當前較流行的編碼版本,因為其通用性和兼容性都很好,是未來WEB系統的大趨勢。
UTF8和GBK版本的選擇
在新建的WEB系統中,我們一般都建議從運行環境、數據庫、代碼等均使用UTF8。
在舊的GBK系統或者新建系統需要很大程度與舊的GBK系統鏈接的時候,我們建議用GBK。
對UTF8亂碼情況的檢查
如果發現UTF8的程序出現亂碼,可以循以下幾點檢查:
* 數據表中,表本身的編碼 和 字段編碼,均為UTF8。
* 在寫入數據等數據庫操作前,發送語句 'set names utf8' 或 對mysql鏈接進行UTF8定義——框架處理。
* PHP文件(包括入口文件、控制器/模型類文件、第三方類庫)和模板文件(包括模板目錄中的html/tpl等等模板文件和Javascript/CSS等文件)都是UTF8編碼,無簽名(無BOM),去除BOM的方法下面有介紹。
* 頁面上使用header或保證輸出的頁面是UTF8編碼。
* 還有一種較少見的,服務器不支持UTF8。
另外,還有一種情況:“從GB2312的文件中,把一些代碼復制到UTF8的文件中”,這種情況也是很隱蔽的,看起來好像沒問題,卻會出現亂碼。問題是發生在那些代碼本身不是UT8的問題上——解決的方式是通過windows記事本另存為UTF8一次,這樣才能把那文件修復回真正的UTF8。
去除UTF-8 BOM的方法
下載ripbom程序(??[ripbom[1].zip](http://www.speedphp.com/forum.php?mod=attachment&aid=NzU0fGNlZDczODExfDE0NDU2Njc4MTF8NjMwOXwzODEz)?(763 Bytes, 下載次數: 187)?),放到需要去除文件BOM的目錄中,訪問就可以自動去除目錄下全部文件的BOM了。注意此文件不能用于根目錄。