標籤:
首先,對論壇的管理人還有論壇某些冷眼旁觀的人們表示遺憾。
昨天遇到了GBK和UTF8互轉問題,查了不少資料都沒理出頭緒,發帖提問無人問津,給管理留言亦是杳無音信。
花費了幾個小時,查了不少資料(其他論壇),經過N詞失敗之後終於轉換成功,在這裡分享給大家,希望能給有需要的同學們提供協助。
廢話不說了,下面是轉換必要的幾步,不一定適合所有人,所以希望大家在開始之前務必備份好資料。(資料庫和模板資料)
GB2312轉UTF8:
第一步:開啟phpMyAdmin,將dedecms資料庫全部匯出(export>>save as file >>go)
第二步:用記事本開啟第一步中匯出的檔案,將其中的的GB2312全部替換成utf8,然後另存,另存時候編碼選utf-8。
第三步:安裝UTF8編碼的dedecms程式
第四步:開啟phpMyAdmin,將新安裝的utf8版本的資料庫中資料清空(Structure>>select all>>go)
第五步:匯入,選擇剛才第二步另存的資料庫檔案。(Import>>go)
到此為止,資料轉換並匯入成功。
///////////////////////////////
souroot註:
資料庫轉為UTF-8後,還有三件事:
1)PHP對資料庫操作前都加上 mysqli_query($conn,"set names utf8"), 這樣做是為了在傳輸,返回結果等都是用的utf-8編碼;
如果mysqli_query($conn,"set names gb2312"), 後台會在操作資料庫時,比如讀完資料庫的資料,先轉成GB2312再傳給用戶端;或者拿到GB2312的資料後,專為資料庫的編碼(這裡是UTF-8),再儲存到資料庫;
2)網頁上註明使用的是UTF-8編碼
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3)對於有輸出html文字的php檔案,檔案本身要專為UTF8格式編碼(最好是無BOM格式,不然PHP認為BOM格式本身已經算輸出了,這個會影響session start);
MYSQL GB2312資料轉為UTF8資料