如果你的網站系統是使用UTF8編碼但是資料庫的資料透過phpMyAdmin看是亂碼
並且在phpMyAdmin可以看到如下圖latin1的,這表示你的網站是過渡時期的UTF8
也就是在MYSQL還沒有正式支援UTF8時且後來主機系統升級到4.1以上的


這種情況下通常你透過phpMyAdmin輸出的SQL檔案都是不能用的
這樣是困擾的,而且也不能做資料備份

使用資料庫輸出下載工具將set name utf8選項先取消後按取得資料表狀態

接下來切換到下載資料庫 這邊保持預設的選項,按下全部選取以便下載全部資料
然後按下開始下載

下載完成,資料表會進行比對

此時下載的資料就如圖,可以正常顯示

然後我個人是建議,強烈的建議,建立一個新資料庫來還原
除非你相當有把握,且是對此有相當概念者
在此我是建立一個新的資料庫來還原,接下來這個步驟切記不要忘記
就是把編碼選項勾回來

然後還原,請注意!! 我這是還原到一個新建立的資料庫
看圖左邊沒有資料表就知道這是個空資料庫

還原完成圖

接下來透過phpMyAdmin看這個新資料庫,沒啥問題

假設你是使用phpBB2使用者,請再將phpBB下的config.php打開
修改成mysql4

找到
$this->dbname = $database;
$dbselect = mysql_select_db($this->dbname);
在下面加入這行
mysql_query("set names utf8", $this->db_connect_id);

如果是自己開發的系統程式,請自行在資料庫連線後query出set names utf8
沒有留言:
張貼留言